[{"data":1,"prerenderedAt":15883},["ShallowReactive",2],{"series:index":3,"content:\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Ffeiqilai1":264,"surround:\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Ffeiqilai1":15880},[4,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,84,89,94,98,103,108,113,118,123,128,133,138,143,148,153,158,163,168,173,178,183,188,193,198,203,208,213,217,221,225,229,234,239,243,247,251,255,259],{"stem":5,"path":6,"title":7,"date":8,"collapsed":9},"posts\u002F2024\u002FXZZD-Aquire-Score","\u002F2024\u002F10\u002F23\u002FXZZD-Aquire-Score","XZZD_Aquire_Score","2024-10-23 15:08:30",false,{"stem":11,"path":12,"title":13,"date":14,"collapsed":9},"posts\u002F2024\u002Felec-design-contest-2024","\u002F2024\u002F07\u002F07\u002Felec-design-contest-2024","东四——隐秘的角落","2024-07-07 11:44:32",{"stem":16,"path":17,"title":18,"date":19,"collapsed":9},"posts\u002F2024\u002Fmechanics","\u002F2024\u002F07\u002F08\u002Fmechanics","about力学","2024-07-08 14:14:07",{"stem":21,"path":22,"title":23,"date":24,"collapsed":9},"posts\u002F2025\u002F25GElecDesignContest","\u002F2025\u002F08\u002F26\u002F25GElecDesignContest","纪念最好的大二五组 - Soleil 的 电赛回忆录","2025-08-26 11:06:33",{"stem":26,"path":27,"title":28,"date":29,"collapsed":9},"posts\u002F2025\u002FEngineering-Innovation","\u002F2025\u002F01\u002F20\u002FEngineering-Innovation","工程实践与创新能力大赛","2025-01-20 22:20:59",{"stem":31,"path":32,"title":33,"date":34,"collapsed":9},"posts\u002F2025\u002FTOP","\u002F2025\u002F01\u002F20\u002FTOP","置顶","3025-01-20 21:53:36",{"stem":36,"path":37,"title":38,"date":39,"collapsed":9},"posts\u002FUGCourses\u002F1.freshman-spring\u002Fengineering-drawing-notes","\u002F2024\u002F06\u002F30\u002Fengineering-drawing-notes","工程图学期末复习","2024-06-30 21:02:09",{"stem":41,"path":42,"title":43,"date":44,"collapsed":9},"posts\u002FUGCourses\u002F1.freshman-spring\u002Findex","\u002Fugcourses\u002Ffreshman-spring","大一春夏","2024-06-30 19:15:28",{"stem":46,"path":47,"title":48,"date":49,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002FComplex-Analysis","\u002F2025\u002F01\u002F21\u002FComplex-Analysis","复变函数与积分变换","2025-01-21 13:23:59",{"stem":51,"path":52,"title":53,"date":54,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002FFundamentalsMarxism","\u002F2025\u002F06\u002F06\u002FFundamentalsMarxism","马克思主义基本原理","2025-06-06 00:22:45",{"stem":56,"path":57,"title":58,"date":59,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002FMathematical-Modeling","\u002F2024\u002F09\u002F22\u002FMathematical-Modeling","数学建模（课程）","2024-09-22 19:07:42",{"stem":61,"path":62,"title":63,"date":64,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002FMicroelectronic-Circuits","\u002F2025\u002F01\u002F20\u002FMicroelectronic-Circuits","电基小子","2025-01-20 23:02:49",{"stem":66,"path":67,"title":68,"date":69,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002FMumerical-Analysis","\u002F2024\u002F09\u002F19\u002FMumerical-Analysis","数值分析方法","2024-09-19 17:12:56",{"stem":71,"path":72,"title":73,"date":74,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002FProbability-Theory","\u002F2025\u002F01\u002F21\u002FProbability-Theory","概率论与数理统计","2025-01-21 12:52:11",{"stem":76,"path":77,"title":78,"date":79,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002Fengineering-training","\u002F2024\u002F09\u002F17\u002Fengineering-training","工程训练","2024-09-17 21:40:26",{"stem":81,"path":82,"title":83,"date":44,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002Findex","\u002Fugcourses\u002Fsophomore-autumn","大二秋冬",{"stem":85,"path":86,"title":87,"date":88,"collapsed":9},"posts\u002FUGCourses\u002F2.sophomore-autumn\u002Fsolid-state-physics","\u002F2024\u002F09\u002F11\u002Fsolid-state-physics","固体物理基础","2024-09-11 19:15:26",{"stem":90,"path":91,"title":92,"date":93,"collapsed":9},"posts\u002FUGCourses\u002F3.sophomore-spring\u002FMaoTheory","\u002F2025\u002F06\u002F12\u002FMaoTheory","毛概","2025-06-12 14:58:16",{"stem":95,"path":96,"title":97,"date":44,"collapsed":9},"posts\u002FUGCourses\u002F3.sophomore-spring\u002Findex","\u002Fugcourses\u002Fsophomore-spring","大二春夏",{"stem":99,"path":100,"title":101,"date":102,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture1","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture1","Lecture 1：摩尔定律与 CMOS","2026-09-09 19:39:00",{"stem":104,"path":105,"title":106,"date":107,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture10","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture10","Lecture 10：从 MOS 电容到 MOSFET","2026-09-10 00:10:00",{"stem":109,"path":110,"title":111,"date":112,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture11","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture11","Lecture 11：亚阈值效应与 MOSFET 尺寸缩放","2026-09-10 00:20:00",{"stem":114,"path":115,"title":116,"date":117,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture12","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture12","Lecture 12：MOSFET 尺寸缩微","2026-09-10 00:30:00",{"stem":119,"path":120,"title":121,"date":122,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture13","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture13","Lecture 13：MOS 新范式","2026-09-10 00:40:00",{"stem":124,"path":125,"title":126,"date":127,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture2","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture2","Lecture 2：半导体基础","2026-09-09 19:39:31",{"stem":129,"path":130,"title":131,"date":132,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture3","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture3","Lecture 3：费米能级、载流子散射与迁移率","2026-09-09 21:00:00",{"stem":134,"path":135,"title":136,"date":137,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture4","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture4","Lecture 4：漂移电流、扩散电流与产生复合","2026-09-09 23:00:00",{"stem":139,"path":140,"title":141,"date":142,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture5","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture5","Lecture 5：PN 结与耗尽区","2026-09-09 23:10:00",{"stem":144,"path":145,"title":146,"date":147,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture6","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture6","Lecture 6：正向偏置 PN 结与理想二极管方程","2026-09-09 23:20:00",{"stem":149,"path":150,"title":151,"date":152,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture7","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture7","Lecture 7：金半接触","2026-09-09 23:40:00",{"stem":154,"path":155,"title":156,"date":157,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture8","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture8","Lecture 8：PN 结在光电领域的应用","2026-09-09 23:50:00",{"stem":159,"path":160,"title":161,"date":162,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FLecture9","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Flecture9","Lecture 9：MOS 电容","2026-09-10 00:00:00",{"stem":164,"path":165,"title":166,"date":167,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FMidtermExam","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Fmidtermexam","期中复习题","2026-09-09 23:30:00",{"stem":169,"path":170,"title":171,"date":172,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002FMockExam","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices\u002Fmockexam","押题密卷","2026-09-10 00:50:00",{"stem":174,"path":175,"title":176,"date":102,"collapsed":177},"posts\u002FUGCourses\u002F4.junior-autumn\u002F1.microelectronic-devices\u002Findex","\u002Fugcourses\u002Fjunior-autumn\u002Fmicroelectronic-devices","微电子器件",true,{"stem":179,"path":180,"title":181,"date":182,"collapsed":177},"posts\u002FUGCourses\u002F4.junior-autumn\u002F2.ICCAD\u002Findex","\u002Fugcourses\u002Fjunior-autumn\u002Ficcad","面向 ICCAD 的软件基础技术","2026-09-10 12:37:00",{"stem":184,"path":185,"title":186,"date":187,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FFeiQilai1","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Ffeiqilai1","飞起来1.0","2026-09-10 12:51:49",{"stem":189,"path":190,"title":191,"date":192,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FFeiQilai2","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Ffeiqilai2","飞起来2.0","2026-09-10 12:52:06",{"stem":194,"path":195,"title":196,"date":197,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FFeiQilai3","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Ffeiqilai3","飞起来3.0","2026-09-10 12:52:12",{"stem":199,"path":200,"title":201,"date":202,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FLecture13","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Flecture13","Lecture 13：浮点数标准","2026-09-10 12:51:27",{"stem":204,"path":205,"title":206,"date":207,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FLecture6","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Flecture6","Lecture 6：Behavioral Modeling，非阻塞赋值","2026-09-10 12:51:12",{"stem":209,"path":210,"title":211,"date":212,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FPPTCorrespondence","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl\u002Fpptcorrespondence","与PPT的对应","2026-09-10 12:52:18",{"stem":214,"path":215,"title":216,"date":182,"collapsed":177},"posts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002Findex","\u002Fugcourses\u002Fjunior-autumn\u002Fhdl","硬件描述语言原理与应用",{"stem":218,"path":219,"title":220,"date":44,"collapsed":9},"posts\u002FUGCourses\u002F4.junior-autumn\u002Findex","\u002Fugcourses\u002Fjunior-autumn","大三秋冬",{"stem":222,"path":223,"title":224,"date":44,"collapsed":9},"posts\u002FUGCourses\u002F5.junior-spring\u002Findex","\u002Fugcourses\u002Fjunior-spring","大三春夏",{"stem":226,"path":227,"title":228,"date":44,"collapsed":9},"posts\u002FUGCourses\u002Findex","\u002Fugcourses","本科课程",{"stem":230,"path":231,"title":232,"date":233,"collapsed":9},"posts\u002Fubuntu\u002F1.config","\u002Fubuntu\u002Fconfig","ubuntu 系统配置","2025-08-26 19:38:06",{"stem":235,"path":236,"title":237,"date":238,"collapsed":9},"posts\u002Fubuntu\u002F2.cadence\u002F1.mmsim","\u002Fubuntu\u002Fcadence\u002Fmmsim","在 Ubuntu 24.04 上安装 Cadence MMSIM 15.1 的兼容性问题","2026-09-09 14:06:40",{"stem":240,"path":241,"title":242,"date":238,"collapsed":9},"posts\u002Fubuntu\u002F2.cadence\u002F2.innovus","\u002Fubuntu\u002Fcadence\u002Finnovus","Innovus安装",{"stem":244,"path":245,"title":246,"date":238,"collapsed":9},"posts\u002Fubuntu\u002F2.cadence\u002Findex","\u002Fubuntu\u002Fcadence","Ubuntu24.04安装Cadence 系列软件",{"stem":248,"path":249,"title":250,"date":238,"collapsed":9},"posts\u002Fubuntu\u002F3.synopsys","\u002Fubuntu\u002Fsynopsys","Ubuntu 24.04 安装 Synopsys",{"stem":252,"path":253,"title":254,"date":238,"collapsed":9},"posts\u002Fubuntu\u002F4.vivado","\u002Fubuntu\u002Fvivado","Ubuntu 24.04 安装 Vivado 2020.1",{"stem":256,"path":257,"title":258,"date":238,"collapsed":9},"posts\u002Fubuntu\u002F5.migrate","\u002Fubuntu\u002Fmigrate","硬盘迁移系统",{"stem":260,"path":261,"title":262,"date":263,"collapsed":9},"posts\u002Fubuntu\u002Findex","\u002Fubuntu","Ubuntu装进移动硬盘","2025-08-25 19:38:06",{"id":265,"title":186,"body":266,"categories":15797,"collapsed":9,"date":187,"description":15798,"draft":9,"extension":15799,"hideInArchive":177,"hideInList":177,"image":15800,"meta":15801,"navigation":177,"path":185,"permalink":15800,"published":15800,"readingTime":15803,"recommend":15800,"references":15800,"seo":15808,"sitemap":15809,"stem":184,"tags":15874,"type":15878,"updated":187,"__hash__":15879},"content\u002Fposts\u002FUGCourses\u002F4.junior-autumn\u002F3.HDL\u002FFeiQilai1.md",{"type":267,"value":268,"toc":15627},"minimark",[269,281,284,319,324,330,335,346,350,355,430,504,565,569,575,580,629,638,645,715,718,723,791,796,799,804,809,812,823,826,840,842,880,894,896,939,945,959,964,989,993,1015,1019,1041,1043,1058,1064,1068,1130,1134,1165,1187,1203,1206,1229,1233,1309,1314,1324,1337,1342,1345,1367,1389,1393,1396,1409,1419,1443,1449,1469,1475,1481,1488,1493,1502,1514,1520,1532,1538,1570,1630,1640,1646,1649,1681,1684,1706,1711,1715,1741,1745,1785,1788,1791,1814,1817,1832,1836,1892,1896,1917,1920,1923,1928,1934,1937,1986,1989,2029,2032,2061,2065,2068,2077,2135,2138,2180,2183,2234,2237,2252,2255,2269,2275,2281,2291,2302,2322,2325,2330,2333,2338,2347,2352,2356,2367,2370,2375,2390,2393,2406,2418,2421,2425,2428,2460,2463,2611,2614,2791,2797,2810,2812,2815,2822,2828,2831,2834,2866,2869,2872,2876,2942,2946,2949,2982,2985,3005,3010,3015,3026,3036,3095,3097,3122,3124,3130,3133,3138,3147,3178,3181,3201,3210,3235,3238,3258,3285,3288,3302,3305,3310,3321,3324,3338,3343,3355,3358,3367,3371,3376,3385,3388,3405,3408,3411,3414,3417,3432,3435,3438,3446,3448,3461,3465,3470,3480,3487,3529,3532,3537,3540,3545,3568,3592,3597,3601,3604,3682,3685,3688,3772,3774,3780,3786,3794,3797,3802,3807,3812,3817,3819,3825,3828,3834,3837,3843,3846,3852,3855,3861,3875,3878,3880,3886,3891,3902,3907,3912,3917,4103,4460,4466,4469,4474,4477,4480,4485,4488,4493,4499,4506,4513,4771,5045,5310,5332,5337,5340,5401,5406,5409,5754,5769,5774,8130,8135,8138,8155,8160,8246,8410,8415,8746,8752,8755,8790,8793,8798,8803,8806,8808,8814,8817,8820,8825,8831,8838,8910,8979,8983,9209,9815,9820,10339,10344,10451,10454,10668,10983,10996,11000,11005,11010,11013,11016,11021,11024,11026,11036,11040,11043,11048,11051,11075,11080,11083,11322,11325,11596,11705,11971,11974,11977,12109,12113,12116,12121,12128,12149,12152,12205,12218,12414,12416,12422,12427,12430,12493,12496,12554,12557,12562,12630,12634,12640,12645,12648,12861,12864,12869,12872,12901,12912,12995,12997,13000,13020,13035,13038,13065,13094,13100,13132,13138,13159,13165,13215,13221,13303,13305,13308,13312,13392,13395,13402,13404,13408,13440,13446,13448,13452,13458,13460,13464,13470,13472,13476,13482,13484,13488,13494,13496,13500,13507,13510,13578,13580,13584,13591,13594,13761,13763,13767,13770,13775,13792,13864,13866,13870,13875,13881,13953,13963,13983,13985,13989,13995,14159,14165,14524,14840,14844,14854,14857,15173,15175,15179,15184,15188,15195,15198,15201,15259,15263,15266,15268,15272,15278,15281,15309,15313,15317,15321,15325,15329,15332,15347,15352,15361,15363,15366,15370,15373,15415,15430,15434,15437,15535,15537,15540,15543,15549,15555,15561,15568,15571,15576,15600,15617],[270,271,273],"alert",{"type":272},"tip",[274,275,276,280],"p",{},[277,278,279],"mark",{},"紫色","部分是神的重点",[274,282,283],{},"这一部分主要是来源于Key of the courses，针对前四题",[270,285,286,292,297,302,305,308,313,316],{"type":272},[274,287,288],{},[289,290,291],"em",{},"一：判断题，共5题，每题2分",[274,293,294],{},[289,295,296],{},"二：选择题，共5题，每题2分",[274,298,299],{},[289,300,301],{},"三：填空题，共10题，每题3分",[274,303,304],{},"基本的硬件描述语言与设计知识，参考课程核心知识点复习，对应题型一、二、三为主",[274,306,307],{},"神：绝大多数人一二三不会有问题",[274,309,310],{},[289,311,312],{},"四：简答题，共5题，每题4分",[274,314,315],{},"课程核心知识点(含作业)中的(紫色)重点，对应题型四为主",[274,317,318],{},"神：尽量全面，但是不用写得很长，和作业当中的内容对应（是不是就说明是原题",[320,321,323],"h2",{"id":322},"verilog-基础","Verilog 基础",[274,325,326],{},[327,328],"img",{"alt":327,"src":329},"\u002Fimg\u002FHDL\u002FFeiQilai1-01.png",[331,332,334],"h4",{"id":333},"moduleendmodule","module\u002Fendmodule",[274,336,337,338,342,343],{},"这是 Verilog 设计的",[339,340,341],"strong",{},"基本单元","，在硬件上对应一个“黑盒”模块。",[339,344,345],{},"综合工具会把它视为一个独立的电路单元",[331,347,349],{"id":348},"wirereg","wire\u002Freg",[274,351,352],{},[327,353],{"alt":327,"src":354},"\u002Fimg\u002FHDL\u002FFeiQilai1-02.png",[356,357,358,385],"ul",{},[359,360,361,365,366,369,370,373,374,377,378,381,382],"li",{},[362,363,364],"code",{"code":364},"wire"," (线网型)：代表物理连线，它",[339,367,368],{},"没有存储能力","。它必须被",[339,371,372],{},"连续驱动","（例如 ",[362,375,376],{"code":376},"assign"," 语句或另一个模块的 ",[362,379,380],{"code":380},"output","）。\n",[327,383],{"alt":327,"src":384},"\u002Fimg\u002FHDL\u002FFeiQilai1-03.png",[359,386,387,390,391,394,395,399,400,405,408],{},[362,388,389],{"code":389},"reg"," (寄存器型)：代表一个",[339,392,393],{},"存储元件","。注意，",[277,396,397],{},[362,398,389],{"code":389}," ",[277,401,402],{},[339,403,404],{},"不一定",[277,406,407],{},"会被综合成寄存器（Flip-Flop）。",[356,409,410,421],{},[359,411,412,413,416,417,420],{},"在 ",[362,414,415],{"code":415},"always @(posedge clk)"," 块中，它被综合为",[339,418,419],{},"时序逻辑","（触发器）。",[359,422,412,423,416,426,429],{},[362,424,425],{"code":425},"always @(*)",[339,427,428],{},"组合逻辑","（一堆门电路）。",[431,432,433,455],"table",{},[434,435,436],"thead",{},[437,438,439,443,446,449,452],"tr",{},[440,441,442],"th",{},"always 块类型",[440,444,445],{},"敏感列表",[440,447,448],{},"赋值完整性",[440,450,451],{},"综合结果",[440,453,454],{},"硬件实例",[456,457,458,474,489],"tbody",{},[437,459,460,463,466,469,471],{},[461,462,415],"td",{},[461,464,465],{},"时钟边沿",[461,467,468],{},"(N\u002FA)",[461,470,419],{},[461,472,473],{},"触发器 (Flip-Flop)",[437,475,476,478,481,484,486],{},[461,477,425],{},[461,479,480],{},"电平（所有输入）",[461,482,483],{},"完整（所有分支\u002F情况都赋值）",[461,485,428],{},[461,487,488],{},"门电路 (MUX, Adder...)",[437,490,491,493,495,498,501],{},[461,492,425],{},[461,494,480],{},[461,496,497],{},"不完整（有分支未赋值）",[461,499,500],{},"(意外的) 锁存器 (Latch)",[461,502,503],{},"锁存器 (Latch)",[274,505,506,511,514,399,518,521,526,399,529,533,536,399,541,399,544,399,549,552,556,399,558,562],{},[277,507,508],{},[339,509,510],{},"关键",[277,512,513],{},"：",[277,515,516],{},[362,517,376],{"code":376},[277,519,520],{},"语句的左侧",[277,522,523],{},[339,524,525],{},"必须",[277,527,528],{},"是",[277,530,531],{},[362,532,364],{"code":364},[277,534,535],{},"；",[277,537,538],{},[362,539,540],{"code":540},"always",[277,542,543],{},"或",[277,545,546],{},[362,547,548],{"code":548},"initial",[277,550,551],{},"块内部被赋值的变量",[277,553,554],{},[339,555,525],{},[277,557,528],{},[277,559,560],{},[362,561,389],{"code":389},[277,563,564],{},"。",[331,566,568],{"id":567},"inputoutputinout","input\u002Foutput\u002Finout",[274,570,571,572],{},"输入、输出、双向输入输出端口",[339,573,574],{},"默认是连线wire类型",[274,576,577],{},[327,578],{"alt":327,"src":579},"\u002Fimg\u002FHDL\u002FFeiQilai1-04.png",[431,581,582,595],{},[434,583,584],{},[437,585,586,589,592],{},[440,587,588],{},"模块端口方向",[440,590,591],{},"模块内部 (例如 arbiter)",[440,593,594],{},"模块外部 (例如 outer_module)",[456,596,597,608,618],{},[437,598,599,602,605],{},[461,600,601],{},"input",[461,603,604],{},"必须是 wire (例如 a)",[461,606,607],{},"可以是 reg 或 wire (例如 A)",[437,609,610,612,615],{},[461,611,380],{},[461,613,614],{},"可以是 reg 或 wire (例如 q)",[461,616,617],{},"必须是 wire (例如 Q)",[437,619,620,623,626],{},[461,621,622],{},"inout",[461,624,625],{},"必须是 wire (例如 b)",[461,627,628],{},"必须是 wire (例如 B)",[274,630,631,632,634,635,564],{},"模块的端口方向。",[362,633,622],{"code":622},"（双向端口）在综合中比较特殊，",[339,636,637],{},"通常用于实现三态总线",[331,639,641,644],{"id":640},"逻辑电平-01zx",[339,642,643],{},"逻辑电平----","0\u002F1\u002Fz\u002Fx",[356,646,647,657,671,701,707],{},[359,648,649,652,653,656],{},[362,650,651],{"code":651},"0"," (逻辑0)、",[362,654,655],{"code":655},"1"," (逻辑1)：对应实际电路的低电平和高电平。",[359,658,659,662,663,666,667,670],{},[362,660,661],{"code":661},"z"," (高阻态)：",[339,664,665],{},"代表没有驱动","。它在硬件上是",[339,668,669],{},"真实存在","的（如三态缓冲器），用于实现多路复用的总线。",[359,672,673,676,677,680,681,683,684,564,687,689,690,693,694,696,697,700],{},[362,674,675],{"code":675},"x"," (未知态)：代表",[339,678,679],{},"逻辑冲突","（如两个驱动源同时驱动一个 ",[362,682,364],{"code":364}," 为 0 和 1）或",[339,685,686],{},"未初始化",[362,688,675],{"code":675}," 态是",[339,691,692],{},"仿真","中的概念，用于调试；在真实硬件中没有 ",[362,695,675],{"code":675},"，它会",[339,698,699],{},"是一个不确定的 0 或 1","。\n初始, 所有变量从X开始",[359,702,703,706],{},[339,704,705],{},"X是传播的","，例如：逻辑操作(0 or X) = X",[359,708,709,714],{},[277,710,711],{},[339,712,713],{},"Z也传播X","，例如：逻辑操作(1 and Z) = X",[331,716,717],{"id":717},"vector",[274,719,720],{},[327,721],{"alt":327,"src":722},"\u002Fimg\u002FHDL\u002FFeiQilai1-05.png",[724,725,726,733,743],"ol",{},[359,727,728,729,732],{},"向量写法，如 ",[362,730,731],{"code":731},"wire [7:0] data;","。这是描述总线的基础。",[359,734,735,736,739,740],{},"向量通常左边是高位，上述的例子的",[362,737,738],{"code":738},"reg [0:20] a;","也可表示为",[362,741,742],{"code":742},"reg [0:-20] a;",[359,744,745,748,749,752,753,756,757,760,765,768,773,776,781,783,788],{},[362,746,747],{"code":747},"a[\u003Cbase_bit> +: \u003Cwidth>]"," 代表从一个",[339,750,751],{},"基地址 (base bit)"," 开始，选择一个",[339,754,755],{},"固定宽度 (width)"," 的位，如果是减号，就向下去取width位\n举例如下，",[339,758,759],{},"特别关注",[339,761,762],{},[362,763,764],{"code":764},"n[3+:2]",[339,766,767],{},"取到",[339,769,770],{},[362,771,772],{"code":772},"Bit4,3",[339,774,775],{},"(从3这个基地址含3向上取两位)，",[339,777,778],{},[362,779,780],{"code":780},"n[3-:2]",[339,782,767],{},[339,784,785],{},[362,786,787],{"code":787},"Bit3,2",[339,789,790],{},"(从3这个基地址含3向下取两位)",[274,792,793],{},[327,794],{"alt":327,"src":795},"\u002Fimg\u002FHDL\u002FFeiQilai1-06.png",[331,797,798],{"id":798},"constant",[274,800,801],{},[327,802],{"alt":327,"src":803},"\u002Fimg\u002FHDL\u002FFeiQilai1-07.png",[274,805,806],{},[327,807],{"alt":327,"src":808},"\u002Fimg\u002FHDL\u002FFeiQilai1-08.png",[274,810,811],{},"最高位的扩展",[356,813,814,817,820],{},[359,815,816],{},"最高位是0\u002F1：扩展0，如果是有符号数的负数应该是扩展1",[359,818,819],{},"最高位x：扩展x",[359,821,822],{},"最高位z：扩展z",[331,824,825],{"id":825},"parameter",[274,827,828,829,832,833,836,837,564],{},"这是实现",[339,830,831],{},"可配置、可重用","设计的关键。例如，你可以写一个 ",[362,834,835],{"code":835},"parameter WIDTH = 8"," 的 N 位加法器，在实例化时通过修改参数将其配置为 32 位或 64 位。这在综合时是",[339,838,839],{},"静态确定的",[331,841,548],{"id":548},[274,843,844,849,852,857,858,399,862,399,865,870,873,878],{},[277,845,846],{},[339,847,848],{},"仅在仿真开始时执行一次",[277,850,851],{},"。它",[277,853,854],{},[339,855,856],{},"几乎不可综合","（唯一的例外是 FPGA 中用于初始化 BRAM\u002FROM 的内容）。",[277,859,860],{},[362,861,548],{"code":548},[277,863,864],{},"块是",[277,866,867],{},[339,868,869],{},"Testbench 的核心",[277,871,872],{},"，用于",[277,874,875],{},[339,876,877],{},"产生激励信号",[277,879,564],{},[356,881,882,888],{},[359,883,884,885],{},"begin .. end的initial块语句块语句内",[339,886,887],{},"串行执行",[359,889,890,891],{},"initial块语句是行为构造，",[339,892,893],{},"仅在t = 0时执行",[331,895,540],{"id":540},[356,897,898,914,936],{},[359,899,900,904,907,911],{},[277,901,902],{},[362,903,415],{"code":415},[277,905,906],{},"：描述",[277,908,909],{},[339,910,419],{},[277,912,913],{},"（同步电路）。",[359,915,916,920,922,926,928,399,933],{},[277,917,918],{},[362,919,425],{"code":425},[277,921,906],{},[277,923,924],{},[339,925,428],{},[277,927,564],{},[277,929,930],{},[362,931,932],{"code":932},"*",[277,934,935],{},"会自动包含所有在块内读取的信号。",[359,937,938],{},"always的执行可通过敏感表进行控制",[331,940,942,941],{"id":941},"延迟写法",[362,943,944],{"code":944},"#",[274,946,947,950,951,954,955,958],{},[339,948,949],{},"100% 不可综合","。综合工具会",[339,952,953],{},"完全忽略","它（例如 ",[362,956,957],{"code":957},"#10","）。它仅用于仿真，在 Testbench 中模拟信号的真实延迟。",[960,961,963],"h5",{"id":962},"_1-延迟类型","(1) 延迟类型",[431,965,967],{"style":966},"width: 100%; border: 0; border-collapse: collapse; border-spacing: 0;",[456,968,969],{},[437,970,972,973,972,981],{"style":971},"border: none;","\n  ",[461,974,976,972],{"style":975},"width: 41.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,977,978],{},[327,979],{"alt":327,"src":980},"\u002Fimg\u002FHDL\u002FFeiQilai1-09.png",[461,982,984,972],{"style":983},"width: 58.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,985,986],{},[327,987],{"alt":327,"src":988},"\u002Fimg\u002FHDL\u002FFeiQilai1-10.png",[990,991,992],"h6",{"id":992},"图例说明",[431,994,995],{"style":966},[456,996,997],{},[437,998,972,999,972,1007],{"style":971},[461,1000,1002,972],{"style":1001},"width: 60.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1003,1004],{},[327,1005],{"alt":327,"src":1006},"\u002Fimg\u002FHDL\u002FFeiQilai1-11.png",[461,1008,1010,972],{"style":1009},"width: 39.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1011,1012],{},[327,1013],{"alt":327,"src":1014},"\u002Fimg\u002FHDL\u002FFeiQilai1-12.png",[960,1016,1018],{"id":1017},"_2-最小-典型-最大的延迟","(2) 最小: 典型: 最大的延迟",[431,1020,1021],{"style":966},[456,1022,1023],{},[437,1024,972,1025,972,1033],{"style":971},[461,1026,1028,972],{"style":1027},"width: 56.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1029,1030],{},[327,1031],{"alt":327,"src":1032},"\u002Fimg\u002FHDL\u002FFeiQilai1-13.png",[461,1034,1036,972],{"style":1035},"width: 43.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1037,1038],{},[327,1039],{"alt":327,"src":1040},"\u002Fimg\u002FHDL\u002FFeiQilai1-14.png",[331,1042,376],{"id":376},[274,1044,1045,1048,1052,1054,1057],{},[277,1046,1047],{},"连续赋值，描述纯粹的",[277,1049,1050],{},[339,1051,428],{},[277,1053,564],{},[362,1055,1056],{"code":1056},"assign out = a & b;"," 会被综合为一个与门。",[274,1059,1060,1061],{},"实际上assign也是触发逻辑，",[339,1062,1063],{},"assign等号右侧的语句有变化了才会触发整个assign语句驱动",[331,1065,1067],{"id":1066},"if-else-语句","If-else 语句",[724,1069,1070,1082,1102],{},[359,1071,1072,1073,1076,1077],{},"在硬件上会综合成",[339,1074,1075],{},"优先选择器","（Priority MUX）",[270,1078,1079],{"type":272},[274,1080,1081],{},"但如果条件是明显的互斥逻辑，可能由于综合工具的智能而编码成多路选择器，但if else 给出的大体上的”综合意愿“是优先编码器",[359,1083,1084,1087,1088,1091,1092,1095,1096,1098,1099,1101],{},[362,1085,1086],{"code":1086},"if"," 条件优先级最高。如果 ",[362,1089,1090],{"code":1090},"if\u002Felse"," 链不完整（缺少 ",[362,1093,1094],{"code":1094},"else","或者覆盖的条件不完整，包括下面这个case语句条件覆盖不完整也是一样），在 ",[362,1097,425],{"code":425}," 块中会产生",[339,1100,503],{}," 。",[359,1103,1104,1105],{},"If-else在匹配x或z时始终返回假",[270,1106,1107],{"type":272},[274,1108,1109,1110,1113,1114,1117,1118,1120,1121,1123,1124,1129],{},"举例：",[362,1111,1112],{"code":1112},"if (sel)"," 会将",[362,1115,1116],{"code":1116},"sel","取 ",[362,1119,675],{"code":675}," 或 ",[362,1122,661],{"code":661}," 视为 ",[339,1125,1126],{},[362,1127,1128],{"code":1128},"false","（假）。",[331,1131,1133],{"id":1132},"case-语句casecasezcasex","Case 语句（case\u002Fcasez\u002Fcasex）",[356,1135,1136,1156],{},[359,1137,1138,1141,1142,1145,1146,1148,1149,1152,1153],{},[362,1139,1140],{"code":1140},"case"," 会综合成一个",[339,1143,1144],{},"多路选择器 (MUX)","。它通常比 ",[362,1147,1090],{"code":1090}," 链更优（面积更小，速度更快），因为它暗示了",[339,1150,1151],{},"并行比较","。case语句执行精确相等（相当于全等操作符===） If-else在匹配x或z时始终返回假 。\n",[327,1154],{"alt":327,"src":1155},"\u002Fimg\u002FHDL\u002FFeiQilai1-15.png",[359,1157,1158,1161,1162,1164],{},[362,1159,1160],{"code":1160},"casez","：将 ",[362,1163,661],{"code":661}," 视为 \"don't care\"（不关心）。",[431,1166,1167],{"style":966},[456,1168,1169],{},[437,1170,972,1171,972,1179],{"style":971},[461,1172,1174,972],{"style":1173},"width: 54.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1175,1176],{},[327,1177],{"alt":327,"src":1178},"\u002Fimg\u002FHDL\u002FFeiQilai1-16.png",[461,1180,1182,972],{"style":1181},"width: 45.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1183,1184],{},[327,1185],{"alt":327,"src":1186},"\u002Fimg\u002FHDL\u002FFeiQilai1-17.png",[356,1188,1189],{},[359,1190,1191,1161,1194,1196,1197,1199,1200],{},[362,1192,1193],{"code":1193},"casex",[362,1195,675],{"code":675}," 和 ",[362,1198,661],{"code":661}," 都视为 \"don't care\"。这在描述某些有无关项的真值表时很有用，可以帮助综合器优化逻辑。\n",[327,1201],{"alt":327,"src":1202},"\u002Fimg\u002FHDL\u002FFeiQilai1-18.png",[331,1204,1205],{"id":1205},"for",[274,1207,1208,1210,1211,1214,1215,1218,1219,1221,1222,1225,1226,1228],{},[362,1209,1205],{"code":1205}," 循环在综合时",[339,1212,1213],{},"不是时间上的循环","，而是",[339,1216,1217],{},"空间上的硬件复制","。一个 ",[362,1220,1205],{"code":1205}," 循环会",[339,1223,1224],{},"展开","成一长串的硬件电路。例如，用 ",[362,1227,1205],{"code":1205}," 循环写一个 32 位加法器，它会被综合成 32 个全加器。",[331,1230,1232],{"id":1231},"functiontask","function\u002Ftask",[356,1234,1235,1288],{},[359,1236,1237,1242,1245,1250,1253,1258,399,1261,399,1265,399,1267,1272,1275,1280,1283],{},[277,1238,1239],{},[362,1240,1241],{"code":1241},"function",[277,1243,1244],{},"（函数）通常用于描述",[277,1246,1247],{},[339,1248,1249],{},"可重用的组合逻辑",[277,1251,1252],{},"，它必须有返回值，且",[277,1254,1255],{},[339,1256,1257],{},"不能包含任何时间控制",[277,1259,1260],{},"（如",[277,1262,1263],{},[362,1264,944],{"code":944},[277,1266,543],{},[277,1268,1269],{},[362,1270,1271],{"code":1271},"@",[277,1273,1274],{},"）。",[277,1276,1277],{},[339,1278,1279],{},"至少有一个input端口",[277,1281,1282],{},"，并且",[277,1284,1285],{},[339,1286,1287],{},"只有一个output端口",[359,1289,1290,1295,1298,1303,1306],{},[277,1291,1292],{},[362,1293,1294],{"code":1294},"task",[277,1296,1297],{},"（任务）更通用，",[277,1299,1300],{},[339,1301,1302],{},"可以包含时间控制，可以没有返回值",[277,1304,1305],{},"。在可综合设计中较少用，但在 Testbench 中非常有用。",[327,1307],{"alt":327,"src":1308},"\u002Fimg\u002FHDL\u002FFeiQilai1-19.png",[274,1310,1311],{},[327,1312],{"alt":327,"src":1313},"\u002Fimg\u002FHDL\u002FFeiQilai1-20.png",[331,1315,1317,1320,1321],{"id":1316},"display-finish",[362,1318,1319],{"code":1319},"$display"," \u002F ",[362,1322,1323],{"code":1323},"$finish",[274,1325,1326,1329,1334],{},[277,1327,1328],{},"系统任务，",[277,1330,1331],{},[339,1332,1333],{},"不可综合",[277,1335,1336],{},"，仅用于仿真调试（打印信息、结束仿真）。",[274,1338,1339],{},[327,1340],{"alt":327,"src":1341},"\u002Fimg\u002FHDL\u002FFeiQilai1-21.png",[331,1343,1344],{"id":1344},"文件相关的系统任务",[431,1346,1347],{"style":966},[456,1348,1349],{},[437,1350,972,1351,972,1359],{"style":971},[461,1352,1354,972],{"style":1353},"width: 48.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1355,1356],{},[327,1357],{"alt":327,"src":1358},"\u002Fimg\u002FHDL\u002FFeiQilai1-22.png",[461,1360,1362,972],{"style":1361},"width: 51.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1363,1364],{},[327,1365],{"alt":327,"src":1366},"\u002Fimg\u002FHDL\u002FFeiQilai1-23.png",[431,1368,1369],{"style":966},[456,1370,1371],{},[437,1372,972,1373,972,1381],{"style":971},[461,1374,1376,972],{"style":1375},"width: 50.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1377,1378],{},[327,1379],{"alt":327,"src":1380},"\u002Fimg\u002FHDL\u002FFeiQilai1-24.png",[461,1382,1384,972],{"style":1383},"width: 49.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,1385,1386],{},[327,1387],{"alt":327,"src":1388},"\u002Fimg\u002FHDL\u002FFeiQilai1-25.png",[331,1390,1392],{"id":1391},"fsm-3个always块","FSM (3个always块)",[274,1394,1395],{},"三段式写法：",[724,1397,1398],{},[359,1399,1400,513,1403,1405,1406,1274],{},[362,1401,1402],{"code":1402},"always @(posedge clk ...)",[339,1404,419],{},"，只负责状态寄存器（",[362,1407,1408],{"code":1408},"current_state \u003C= next_state;",[1410,1411,1417],"pre",{"className":1412,"code":1414,"language":1415,"meta":1416},[1413],"language-verilog","\u002F\u002F Block 1: 状态寄存器 (时序逻辑)\n\u002F\u002F 负责 state 的存储和更新\nalways @(posedge clk or negedge rst)\n    if (!rst)\n        state \u003C= s0; \u002F\u002F 复位到初始状态 \n    else\n        state \u003C= next_state; \u002F\u002F 在时钟边沿更新状态\n","verilog","",[362,1418,1414],{"__ignoreMap":1416},[724,1420,1422],{"start":1421},2,[359,1423,1424,513,1426,1428,1429,1196,1432,1435,1436,1439,1440,1442],{},[362,1425,425],{"code":425},[339,1427,428],{},"，负责根据 ",[362,1430,1431],{"code":1431},"current_state",[362,1433,1434],{"code":1434},"inputs"," 计算 ",[362,1437,1438],{"code":1438},"next_state","（通常用 ",[362,1441,1140],{"code":1140}," 语句）。",[1410,1444,1447],{"className":1445,"code":1446,"language":1415,"meta":1416},[1413],"\u002F\u002F Block 2: 下一状态逻辑 (组合逻辑)\n\u002F\u002F 负责计算 next_state\nalways @(*)\n    case (state)\n        s0: if (i == 1'b1)\n                next_state = s1;\n            else\n                next_state = s0;\n        s1: ... \u002F\u002F s1 的跳转逻辑\n        s2: ... \u002F\u002F s2 的跳转逻辑\n        default:\n            next_state = s0; \u002F\u002F 原文示例不完整, 但 default 是必需的\n    endcase\n",[362,1448,1446],{"__ignoreMap":1416},[724,1450,1452],{"start":1451},3,[359,1453,1454,1456,1457,1459,1460,1462,1463,1465,1466],{},[362,1455,425],{"code":425}," (Mealy型) 或 ",[362,1458,415],{"code":415}," (Moore型)：负责根据 ",[362,1461,1431],{"code":1431}," (和 ",[362,1464,1434],{"code":1434},") 计算",[339,1467,1468],{},"输出",[1410,1470,1473],{"className":1471,"code":1472,"language":1415,"meta":1416},[1413],"\u002F\u002F Block 3: 输出逻辑 \n\u002F\u002F 负责根据 state 产生输出 q\nalways @(*) \u002F\u002F output encoding \n    case (state)\n        s0: q = 1'b0;\n        s1: q = 1'b0;\n        s2: q = 1'b1;\n        default: q = 1'b0;\n    endcase\n",[362,1474,1472],{"__ignoreMap":1416},[331,1476,1478],{"id":1477},"数据通路-2个always块",[339,1479,1480],{},"数据通路 (2个always块)",[274,1482,1483,1484,1487],{},"这是指 FSM+Datapath 结构中的 ",[362,1485,1486],{"code":1486},"Datapath","（数据通路）部分。",[274,1489,1490],{},[327,1491],{"alt":327,"src":1492},"\u002Fimg\u002FHDL\u002FFeiQilai1-26.png",[274,1494,1495,1496,1498,1499,1501],{},"数据通路所做的事情有两个，一个是直接对传入的数据作",[339,1497,428],{},"，通过状态判断直接输出；另外一件事就是把上一件事的输出使用",[339,1500,419],{},"存储起来（在实现一个变量反复迭代的时候比较有用）",[724,1503,1504],{},[359,1505,1506,513,1508,1510,1513],{},[362,1507,1402],{"code":1402},[339,1509,419],{},[339,1511,1512],{},"（非阻塞）","，包含所有的寄存器（如累加器、数据暂存器）。",[1410,1515,1518],{"className":1516,"code":1517,"language":1415,"meta":1416},[1413],"\u002F\u002F Block 1: 数据寄存器 (时序逻辑)\n\u002F\u002F 负责所有数据寄存器的存储\nalways @(posedge clk or negedge rst) begin\n    if (!rst) begin\n        r_ld \u003C= 1'b0;\n        done \u003C= 1'b0;\n        q \u003C= 10'b00_0000_0001;\n        \u002F\u002F ... r_m, r_n 的复位 (讲义中省略了, 但实际需要)\n    end else begin\n        done \u003C= n_done;  \n        q \u003C= n_q;      \n        r_ld \u003C= ld;    \n        r_m \u003C= n_m;  \n        r_n \u003C= n_n;  \n    end\nend\n",[362,1519,1517],{"__ignoreMap":1416},[724,1521,1522],{"start":1421},[359,1523,1524,513,1526,1528,1531],{},[362,1525,425],{"code":425},[339,1527,428],{},[339,1529,1530],{},"（阻塞）","，包含所有的运算（如加法器、比较器、MUX）。",[1410,1533,1536],{"className":1534,"code":1535,"language":1415,"meta":1416},[1413],"\u002F\u002F Block 2: 数据运算逻辑 (组合逻辑)\n\u002F\u002F 负责所有的数据计算, 受 FSM 的 state 控制\nalways @(*) begin\n    case (state) \u002F\u002F state 来自 FSM 控制器 \n        srun: begin\n            \u002F\u002F 执行运算\n            n_m = (r_m > r_n) ? r_m - r_n : r_m;\n            n_n = (r_m > r_n) ? r_n : r_n - r_m;\n            n_done = (r_m == r_n); \n            n_q = r_m;\n        end\n        default: begin \u002F\u002F 对应 \"swait\" 状态\n            \u002F\u002F 加载数据\n            n_m = m;\n            n_n = n;\n            n_done = done;\n            n_q = q;\n        end\n    endcase\nend\n",[362,1537,1535],{"__ignoreMap":1416},[331,1539,1541,1546,1553,1558,1565],{"id":1540},"阻塞-vs-非阻塞",[277,1542,1543],{},[339,1544,1545],{},"阻塞 (",[277,1547,1548],{},[339,1549,1550],{},[362,1551,1552],{"code":1552},"=",[277,1554,1555],{},[339,1556,1557],{},") vs 非阻塞 (",[277,1559,1560],{},[339,1561,1562],{},[362,1563,1564],{"code":1564},"\u003C=",[277,1566,1567],{},[339,1568,1569],{},")",[356,1571,1572,1588],{},[359,1573,1574,1576,1580,1582,1583,399,1585,1587],{},[339,1575,1545],{},[339,1577,1578],{},[362,1579,1552],{"code":1552},[339,1581,1569],{},"：立即求值并赋值。在 ",[362,1584,425],{"code":425},[339,1586,428],{},"中使用。",[359,1589,1590,1593,1597,1599,1600,399,1604,1607,1608,399,1610,1612,1613,1615,1620,1623,1627],{},[339,1591,1592],{},"非阻塞 (",[339,1594,1595],{},[362,1596,1564],{"code":1564},[339,1598,1569],{},"：在 ",[339,1601,1602],{},[362,1603,540],{"code":540},[339,1605,1606],{},"块结束时才更新值（调度更新）","。在 ",[362,1609,415],{"code":415},[339,1611,419],{},"中使用。\n",[277,1614,419],{},[277,1616,1617],{},[339,1618,1619],{},"只用",[277,1621,1622],{},"非阻塞；组合逻辑",[277,1624,1625],{},[339,1626,1619],{},[277,1628,1629],{},"阻塞。",[274,1631,1632,1635,1636,1639],{},[339,1633,1634],{},"为什么？"," 如果在时序逻辑中用阻塞，仿真器和综合器（真实硬件）的行为会",[339,1637,1638],{},"不一致","，导致仿真\u002F硬件不匹配。",[331,1641,1643],{"id":1642},"避免锁存器-latch",[277,1644,1645],{},"避免锁存器 (Latch)",[274,1647,1648],{},"锁存器是电平敏感的存储器，在同步设计中是有害的（会导致时序分析困难、易产生毛刺）。",[274,1650,1651,399,1654,399,1658,399,1661,399,1665,399,1667,399,1671,399,1674,399,1678],{},[277,1652,1653],{},"在",[277,1655,1656],{},[362,1657,425],{"code":425},[277,1659,1660],{},"块中，如果一个",[277,1662,1663],{},[362,1664,1086],{"code":1086},[277,1666,543],{},[277,1668,1669],{},[362,1670,1140],{"code":1140},[277,1672,1673],{},"语句没有覆盖所有分支，并且没有为某个",[277,1675,1676],{},[362,1677,389],{"code":389},[277,1679,1680],{},"变量在所有条件下都赋值，综合器为了“记住”上一个值，就会生成一个 Latch。",[274,1682,1683],{},"如何避免？",[724,1685,1686,1692,1701],{},[359,1687,1688,1689,1691],{},"确保 ",[362,1690,1090],{"code":1090}," 完整。",[359,1693,1688,1694,1696,1697,1700],{},[362,1695,1140],{"code":1140}," 有 ",[362,1698,1699],{"code":1699},"default"," 分支。",[359,1702,412,1703,1705],{},[362,1704,540],{"code":540}," 块开头为所有变量赋一个默认值。",[331,1707,1709],{"id":1708},"代码编写规范与命名法",[277,1710,1708],{},[320,1712,1714],{"id":1713},"个人verilog编码规范","个人Verilog编码规范",[274,1716,1717,1718,1722,1725,1728,1731,1734,1737,1740],{},"综合上述分析,一套优秀的个人Verilog编码规范应是层次化、多维度的。所以我最终形成的个人规范是以**",[1719,1720,1721],"span",{},"规范3",[339,1723,1724],{},"的分类法为顶层框架;在词法层面,采纳",[1719,1726,1727],{},"规范2",[339,1729,1730],{},"的可读性思想和",[1719,1732,1733],{},"规范1",[339,1735,1736],{},"的严谨性;在核心的RTL可综合设计层面,则融合了",[1719,1738,1739],{},"规范4","**中面向FPGA硬件实现的思想。最终形成的个人Verilog编码规范初版如下:",[1742,1743,1744],"h3",{"id":1744},"总体原则",[724,1746,1747,1753,1773,1779],{},[359,1748,1749,1752],{},[339,1750,1751],{},"可读性",": 代码首先是写给人看的,其次才是给机器编译的。清晰度优先于简洁。",[359,1754,1755,1758,1759,1762,1763,1765,1766,1762,1769,1772],{},[339,1756,1757],{},"可综合性",": 所有RTL模块必须严格遵循可综合子集。避免使用",[362,1760,1761],{"code":1761},"#delay",", ",[362,1764,548],{"code":548}," (非Testbench中), ",[362,1767,1768],{"code":1768},"force",[362,1770,1771],{"code":1771},"release"," 等。",[359,1774,1775,1778],{},[339,1776,1777],{},"模块化",": 设计应划分为功能明确、接口清晰的模块,以利于复用和维护。",[359,1780,1781,1784],{},[339,1782,1783],{},"一致性",": 在整个项目中,必须严格遵守同一套命名和格式规范。",[1742,1786,1787],{"id":1787},"命名规范",[331,1789,1790],{"id":1790},"文件",[356,1792,1793,1804],{},[359,1794,1795,1796,1799,1800,1803],{},"每个",[362,1797,1798],{"code":1798},"module","应存放在一个单独的",[362,1801,1802],{"code":1802},".v","文件中。",[359,1805,1806,1807,1810,1811,1803],{},"文件名必须与模块名完全一致,采用小写蛇形法(snake_case),例如模块",[362,1808,1809],{"code":1809},"fp_adder","应在",[362,1812,1813],{"code":1813},"fp_adder.v",[331,1815,1816],{"id":1816},"模块",[356,1818,1819],{},[359,1820,1821,1822,1825,1826,1762,1829,564],{},"使用",[339,1823,1824],{},"小写蛇形法 (snake_case)"," 命名,例如 ",[362,1827,1828],{"code":1828},"fp_multiplier",[362,1830,1831],{"code":1831},"fpu_pipeline",[331,1833,1835],{"id":1834},"信号-signals-与变量-variables","信号 (Signals) 与变量 (Variables)",[356,1837,1838,1848,1857,1870],{},[359,1839,1821,1840,1825,1842,1762,1845,564],{},[339,1841,1824],{},[362,1843,1844],{"code":1844},"operand_a",[362,1846,1847],{"code":1847},"man_product",[359,1849,1850,1853,1854,564],{},[339,1851,1852],{},"时钟 (Clocks)",": 统一命名为 ",[362,1855,1856],{"code":1856},"clk",[359,1858,1859,1862,1863,1866,1867,564],{},[339,1860,1861],{},"复位 (Resets)",": 统一使用",[339,1864,1865],{},"异步、低电平有效",",并命名为 ",[362,1868,1869],{"code":1869},"rst_n",[359,1871,1872,1875,1876,1762,1879,1881,1882,1885,1886,1762,1889,564],{},[339,1873,1874],{},"状态机 (FSM)",": 状态寄存器命名为 ",[362,1877,1878],{"code":1878},"state",[362,1880,1438],{"code":1438},"。状态名使用全大写加 ",[362,1883,1884],{"code":1884},"S_"," 前缀,例如 ",[362,1887,1888],{"code":1888},"S_IDLE",[362,1890,1891],{"code":1891},"S_UNPACK",[331,1893,1895],{"id":1894},"常量与参数-constants-and-parameters","常量与参数 (Constants and Parameters)",[356,1897,1898,1908],{},[359,1899,1900,1901,1904,1905,1907],{},"使用 ",[362,1902,1903],{"code":1903},"localparam"," 定义模块内部常量,其命名方式与状态机状态名一致(全大写,",[362,1906,1884],{"code":1884},"前缀)。",[359,1909,1910,1911,1913,1914,564],{},"在顶层或需要外部配置的模块中使用 ",[362,1912,825],{"code":825},",其命名应使用全大写蛇形法(UPPER_SNAKE_CASE),例如 ",[362,1915,1916],{"code":1916},"ADDR_WIDTH",[1742,1918,1919],{"id":1919},"格式与布局规范",[331,1921,1922],{"id":1922},"模块声明",[356,1924,1925],{},[359,1926,1927],{},"端口声明应进行对齐,以提高可读性。类型、位宽和端口名各列对齐。",[1410,1929,1932],{"className":1930,"code":1931,"language":1415,"meta":1416},[1413],"module fp_adder (\n    input  wire        clk,\n    input  wire        rst_n,\n    input  wire        start,\n    input  wire [31:0] operand_a,\n    output reg  [31:0] result,\n    output reg         busy\n);\n",[362,1933,1931],{"__ignoreMap":1416},[331,1935,1936],{"id":1936},"缩进与空格",[356,1938,1939,1952,1959,1976],{},[359,1940,1941,399,1944,399,1949,564],{},[339,1942,1943],{},"严禁使用",[339,1945,1946],{},[362,1947,1948],{"code":1948},"Tab",[339,1950,1951],{},"键",[359,1953,1954,1955,1958],{},"统一使用 ",[339,1956,1957],{},"4 个空格"," 进行缩进。",[359,1960,1961,1962,1762,1964,1762,1967,1762,1970,1762,1972,1975],{},"所有二元运算符(",[362,1963,1552],{"code":1552},[362,1965,1966],{"code":1966},"+",[362,1968,1969],{"code":1969},"^",[362,1971,1564],{"code":1564},[362,1973,1974],{"code":1974},"?:",")前后必须有空格。",[359,1977,1978,1762,1980,1762,1982,1985],{},[362,1979,1086],{"code":1086},[362,1981,1140],{"code":1140},[362,1983,1984],{"code":1984},"always @"," 等关键字后留一个空格。",[331,1987,1988],{"id":1988},"代码块",[356,1990,1991,2008],{},[359,1992,1993,1762,1995,1762,1997,1762,1999,2001,2002,1900,2004,2007],{},[362,1994,540],{"code":540},[362,1996,1086],{"code":1086},[362,1998,1140],{"code":1140},[362,2000,1205],{"code":1205}," 语句块,即使只有一条语句,也",[339,2003,525],{},[362,2005,2006],{"code":2006},"begin...end"," 括起来。",[359,2009,2010,2013,2014,1762,2016,1762,2018,2021,2022,2025,2026,2028],{},[362,2011,2012],{"code":2012},"begin"," 与其关联的语句(如",[362,2015,1086],{"code":1086},[362,2017,1094],{"code":1094},[362,2019,2020],{"code":2020},"case item",")保持在同一行或遵循对齐规则。",[362,2023,2024],{"code":2024},"end"," 单独占一行,并与 ",[362,2027,2012],{"code":2012}," 的起始位置对齐。",[331,2030,2031],{"id":2031},"注释",[356,2033,2034,2047,2050],{},[359,2035,2036,2037,2040,2041,1762,2044,564],{},"在信号声明区,使用 ",[362,2038,2039],{"code":2039},"\u002F\u002F"," 对逻辑相关的信号组进行注释说明,例如 ",[362,2042,2043],{"code":2043},"\u002F\u002F Internal Signals",[362,2045,2046],{"code":2046},"\u002F\u002F FSM states",[359,2048,2049],{},"在端口声明后,可使用对齐的行注释说明端口用途。",[359,2051,2052,2053,2056,2057,2060],{},"注释应解释\"",[339,2054,2055],{},"为什么 (Why)","\",阐明设计意图,而不是简单复述代码\"",[339,2058,2059],{},"是什么 (What)","\"。",[1742,2062,2064],{"id":2063},"rtl-可综合设计规范","RTL 可综合设计规范",[331,2066,2067],{"id":2067},"有限状态机",[274,2069,2070,2073,2074,2076],{},[339,2071,2072],{},"结构",": ",[339,2075,525],{}," 采用\"两段式\"描述:",[724,2078,2079,2099],{},[359,2080,2081,2084,2089,2091,2092,2094,2095,2098],{},[339,2082,2083],{},"时序逻辑 (",[339,2085,2086],{},[362,2087,2088],{"code":2088},"always @(posedge clk or negedge rst_n",[339,2090,1569],{},": 仅负责状态寄存器 ",[362,2093,1878],{"code":1878}," 的更新 (",[362,2096,2097],{"code":2097},"state \u003C= next_state;",")。",[359,2100,2101,2104,2108,2110,2111,2113,2114,2116,2117,2120,2121,2123,2124,2126,2127,2129,2130,2132,2133,2098],{},[339,2102,2103],{},"组合逻辑 (",[339,2105,2106],{},[362,2107,425],{"code":425},[339,2109,1569],{},": 仅负责根据当前状态 ",[362,2112,1878],{"code":1878}," 和输入计算下一状态 ",[362,2115,1438],{"code":1438},"。\n",[339,2118,2119],{},"安全性",": 组合逻辑块中的 ",[362,2122,1140],{"code":1140}," 语句",[339,2125,525],{}," 包含 ",[362,2128,1699],{"code":1699}," 分支,并将 ",[362,2131,1438],{"code":1438}," 指向安全状态(如 ",[362,2134,1888],{"code":1888},[331,2136,2137],{"id":2137},"数据通路",[356,2139,2140,2155,2171],{},[359,2141,2142,2144,2145,2148,2152,2154],{},[339,2143,2072],{},": 核心的数据操作逻辑应统一放在一个",[339,2146,2147],{},"独立的时序逻辑块 (",[339,2149,2150],{},[362,2151,2088],{"code":2088},[339,2153,1569],{}," 中。",[359,2156,2157,2160,2161,2163,2164,2166,2167,2170],{},[339,2158,2159],{},"控制",": 使用状态机生成的 ",[362,2162,1878],{"code":1878}," 在该 ",[362,2165,540],{"code":540}," 块内部通过 ",[362,2168,2169],{"code":2169},"case (state)"," 语句来控制多周期操作的流程。",[359,2172,2173,2176,2177,2179],{},[339,2174,2175],{},"复位",": 在该 ",[362,2178,540],{"code":540}," 块的复位逻辑中,对所有输出端口和关键内部寄存器进行初始化。",[331,2181,2182],{"id":2182},"赋值规则",[356,2184,2185,2206,2225],{},[359,2186,1653,2187,2190,2191,2193,2194,2196,2197,2200,2204,564],{},[339,2188,2189],{},"时序逻辑块"," (",[362,2192,1402],{"code":1402}," )中,",[339,2195,525],{}," 使用",[339,2198,2199],{},"非阻塞赋值 (",[339,2201,2202],{},[362,2203,1564],{"code":1564},[339,2205,1569],{},[359,2207,1653,2208,2190,2211,2213,2214,2196,2216,2219,2223,564],{},[339,2209,2210],{},"组合逻辑块",[362,2212,425],{"code":425},")中,",[339,2215,525],{},[339,2217,2218],{},"阻塞赋值 (",[339,2220,2221],{},[362,2222,1552],{"code":1552},[339,2224,1569],{},[359,2226,2227,2230,2231,2233],{},[339,2228,2229],{},"严禁","在同一个 ",[362,2232,540],{"code":540}," 块中混合使用阻塞和非阻塞赋值。",[331,2235,2236],{"id":2236},"时钟与复位",[356,2238,2239,2247],{},[359,2240,2241,564,2244,2246],{},[339,2242,2243],{},"严禁门控时钟 (Gated Clocks)",[339,2245,525],{}," 使用时钟使能逻辑替代。",[359,2248,2249,2250,564],{},"设计中所有触发器都应接入统一的全局异步复位信号 ",[362,2251,1869],{"code":1869},[331,2253,2254],{"id":2254},"模块化与实例化",[356,2256,2257,2260],{},[359,2258,2259],{},"大型功能(如加法器、乘法器)应封装为独立的子模块。",[359,2261,2262,2263,2196,2265,2268],{},"在顶层模块中实例化子模块时,",[339,2264,525],{},[339,2266,2267],{},"命名端口映射 (Named Port Connections)",",并清晰对齐。",[1410,2270,2273],{"className":2271,"code":2272,"language":1415,"meta":1416},[1413],"\u002F\u002F 示例\nfp_adder u_adder (\n    .clk       (clk),\n    .rst_n     (rst_n),\n    .start     (adder_start),\n    .operand_a (adder_op_a),\n    .operand_b (adder_op_b),\n    .result    (adder_result),\n    .busy      (adder_busy)\n);\n",[362,2274,2272],{"__ignoreMap":1416},[331,2276,2278],{"id":2277},"rtl设计风格",[277,2279,2280],{},"RTL设计(风格)",[274,2282,2283,2284,2287,2288,564],{},"RTL (Register-Transfer Level，寄存器传输级) 是设计的",[339,2285,2286],{},"抽象层次","。不描述门，而是描述",[339,2289,2290],{},"数据如何在寄存器之间流动和处理",[274,2292,2293,2294,2296,2297,1196,2299,2301],{},"我们写的 ",[362,2295,415],{"code":415}," 就是在定义寄存器，",[362,2298,376],{"code":376},[362,2300,425],{"code":425}," 就是在定义寄存器之间的组合逻辑。",[431,2303,2304],{"style":966},[456,2305,2306],{},[437,2307,972,2308,972,2315],{"style":971},[461,2309,2310,972],{"style":1375},[274,2311,2312],{},[327,2313],{"alt":327,"src":2314},"\u002Fimg\u002FHDL\u002FFeiQilai1-27.png",[461,2316,2317,972],{"style":1383},[274,2318,2319],{},[327,2320],{"alt":327,"src":2321},"\u002Fimg\u002FHDL\u002FFeiQilai1-28.png",[1742,2323,2324],{"id":2324},"时钟域",[331,2326,2328],{"id":2327},"单时钟域",[277,2329,2327],{},[274,2331,2332],{},"整个设计只有一个时钟，时序分析简单。",[274,2334,2335],{},[277,2336,2337],{},"单时钟域表示只能使用一种时钟，不同边沿的时钟或者是分频的同源时钟，均非单时钟域",[270,2339,2340],{"type":272},[274,2341,2342,2343,2346],{},"按照实际元件的复位电路情况，通常使用异步复位。为了减少异步复位的释放问题，通常在系统异步复位信号输入时(或者在测试台Testbench中)",[1719,2344,2345],{},"这两种情况取其一就可以","先做同步化",[274,2348,2349],{},[327,2350],{"alt":327,"src":2351},"\u002Fimg\u002FHDL\u002FFeiQilai1-29.png",[331,2353,2355],{"id":2354},"跨时钟域-cdc","跨时钟域 (CDC)",[274,2357,2358,2359,2362,2363,2366],{},"设计中有多个",[339,2360,2361],{},"异步","时钟。这是高级主题，数据跨域时必须使用",[339,2364,2365],{},"同步器","（如两级 DFF 同步器）来防止亚稳态。",[331,2368,2369],{"id":2369},"门控时钟",[274,2371,2372],{},[327,2373],{"alt":327,"src":2374},"\u002Fimg\u002FHDL\u002FFeiQilai1-30.png",[274,2376,2377,2378,2381,2382,2385,2386,2389],{},"用逻辑（如 ",[362,2379,2380],{"code":2380},"clk_gated = clk & enable;","）来关闭部分电路的时钟以省电。",[339,2383,2384],{},"极其危险","，容易产生毛刺。",[339,2387,2388],{},"正确做法","是使用带有时钟使能（CE）的寄存器。",[331,2391,2392],{"id":2392},"异步复位",[274,2394,2395,2398,564,2403,564],{},[277,2396,2397],{},"复位信号",[277,2399,2400],{},[339,2401,2402],{},"独立于时钟",[362,2404,2405],{"code":2405},"always @(posedge clk or negedge rst_n)",[356,2407,2408,2411],{},[359,2409,2410],{},"好处是复位立即生效",[359,2412,2413,2414,2417],{},"坏处是复位的",[339,2415,2416],{},"释放","（de-assertion）是异步的，可能导致亚稳态，需要“复位同步化”",[2419,2420],"hr",{},[331,2422,2424],{"id":2423},"verilog的数据流模型行为模型结构级模型与一般意义上数字逻辑系统中的行为模型结构模型是什么关系-verilog的结构级模型具体指哪种描述方式","Verilog的数据流模型、行为模型、结构(级)模型与一般意义上数字逻辑系统中的行为模型、结构模型是什么关系？ Verilog的结构(级)模型具体指哪种描述方式？",[960,2426,2427],{"id":2427},"数字逻辑系统",[356,2429,2430,2444],{},[359,2431,2432,2435],{},[339,2433,2434],{},"行为模型",[356,2436,2437],{},[359,2438,2439,2440,2443],{},"关注",[339,2441,2442],{},"功能和算法","，比如布尔方程，状态转移图，真值表",[359,2445,2446,2449],{},[339,2447,2448],{},"结构模型",[356,2450,2451],{},[359,2452,2439,2453,2456,2459],{},[339,2454,2455],{},"底层硬件连接",[339,2457,2458],{},"构成","，比如硬件电路图以及模块框图",[960,2461,2462],{"id":1415},"Verilog",[356,2464,2465,2512,2555],{},[359,2466,2467,2469],{},[339,2468,2434],{},[356,2470,2471,2491,2500],{},[359,2472,2473,2474,399,2478,399,2481,399,2485,2488],{},"主要使用 ",[339,2475,2476],{},[362,2477,540],{"code":540},[339,2479,2480],{},"和",[339,2482,2483],{},[362,2484,548],{"code":548},[339,2486,2487],{},"块",[339,2489,2490],{},"，过程赋值",[359,2492,1900,2493,1762,2495,1762,2497,2499],{},[362,2494,1090],{"code":1090},[362,2496,1140],{"code":1140},[362,2498,1205],{"code":1205},"等过程化语句来描述电路的行为。",[359,2501,2502,513,2505,2508,2509],{},[339,2503,2504],{},"抽象级别",[339,2506,2507],{},"高","。是在描述一个",[339,2510,2511],{},"算法",[359,2513,2514,2517],{},[339,2515,2516],{},"数据流模型",[356,2518,2519,2528,2546],{},[359,2520,2473,2521,399,2525],{},[339,2522,2523],{},[362,2524,376],{"code":376},[339,2526,2527],{},"连续赋值语句",[359,2529,2530,2531,1762,2534,1762,2537,2539,2540,2542,2543,2545],{},"使用逻辑运算符（",[362,2532,2533],{"code":2533},"&",[362,2535,2536],{"code":2536},"|",[362,2538,1969],{"code":1969},"）和条件运算符（",[362,2541,1974],{"code":1974},"）来描述数据在“线网”(",[362,2544,364],{"code":364},") 上的流动和变换。",[359,2547,2548,2551,2552],{},[339,2549,2550],{},"抽象级别：中。","是在描述",[339,2553,2554],{},"组合逻辑方程。",[359,2556,2557,2560],{},[339,2558,2559],{},"结构(级)模型",[356,2561,2562,2571],{},[359,2563,2564,2565,2568,2569,1569],{},"主要通过",[339,2566,2567],{},"实例化"," (Instantiation) 门或其他模块 (",[362,2570,1798],{"code":1798},[359,2572,2573,2576,2577,2579,2582,2583,2586,2590,2593,2597,2600,2604,2607,2608,2610],{},[339,2574,2575],{},"抽象级别：低。","是在画电路之间的连线",[339,2578,564],{},[339,2580,2581],{},"总结","： 在Verilog中，",[339,2584,2585],{},"数据流模型（",[339,2587,2588],{},[362,2589,376],{"code":376},[339,2591,2592],{},"）和（过程）行为模型（",[339,2594,2595],{},[362,2596,540],{"code":540},[339,2598,2599],{},"\u002F",[339,2601,2602],{},[362,2603,548],{"code":548},[339,2605,2606],{},"）"," 都是用来描述系统功能的，可以被泛称为广义的“行为模型” 。而Verilog的",[339,2609,2448],{},"则对应广义的“结构模型”，用于描述硬件的连接与构成",[960,2612,2613],{"id":2613},"关系",[356,2615,2616,2713,2766,2772],{},[359,2617,2618,2621,2622],{},[339,2619,2620],{},"“一般意义的”行为模型","（如 FSM 图、算法）",[356,2623,2624,2677],{},[359,2625,2626,2671,2672,2190,2674,2676],{},[1719,2627,2630,2653],{"className":2628},[2629],"katex",[1719,2631,2634],{"className":2632},[2633],"katex-mathml",[2635,2636,2638],"math",{"xmlns":2637},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[2639,2640,2641,2648],"semantics",{},[2642,2643,2644],"mrow",{},[2645,2646,2647],"mo",{},"→",[2649,2650,2652],"annotation",{"encoding":2651},"application\u002Fx-tex","\\rightarrow",[1719,2654,2658],{"className":2655,"ariaHidden":2657},[2656],"katex-html","true",[1719,2659,2662,2667],{"className":2660},[2661],"base",[1719,2663],{"className":2664,"style":2666},[2665],"strut","height:0.3669em;",[1719,2668,2647],{"className":2669},[2670],"mrel"," 通常用 Verilog 的",[339,2673,2434],{},[362,2675,540],{"code":540}," 块) 来实现。",[359,2678,2679,2707,2708,2190,2710,2712],{},[1719,2680,2682,2695],{"className":2681},[2629],[1719,2683,2685],{"className":2684},[2633],[2635,2686,2687],{"xmlns":2637},[2639,2688,2689,2693],{},[2642,2690,2691],{},[2645,2692,2647],{},[2649,2694,2652],{"encoding":2651},[1719,2696,2698],{"className":2697,"ariaHidden":2657},[2656],[1719,2699,2701,2704],{"className":2700},[2661],[1719,2702],{"className":2703,"style":2666},[2665],[1719,2705,2647],{"className":2706},[2670]," 简单的组合逻辑（如布尔方程）也可以用 Verilog 的",[339,2709,2516],{},[362,2711,376],{"code":376},") 来实现。",[359,2714,2715,2718,2719],{},[339,2716,2717],{},"“一般意义的”结构模型","（如门级电路图、模块框图）",[356,2720,2721],{},[359,2722,2723,2751,2752,2755,2756,2758,2759,2762,2763],{},[1719,2724,2726,2739],{"className":2725},[2629],[1719,2727,2729],{"className":2728},[2633],[2635,2730,2731],{"xmlns":2637},[2639,2732,2733,2737],{},[2642,2734,2735],{},[2645,2736,2647],{},[2649,2738,2652],{"encoding":2651},[1719,2740,2742],{"className":2741,"ariaHidden":2657},[2656],[1719,2743,2745,2748],{"className":2744},[2661],[1719,2746],{"className":2747,"style":2666},[2665],[1719,2749,2647],{"className":2750},[2670]," 几乎",[339,2753,2754],{},"一对一","地用 Verilog 的",[339,2757,2559],{},"（实例化）来实现。\n",[339,2760,2761],{},"RTL (寄存器传输级) 设计","，就是 Verilog ",[339,2764,2765],{},"行为模型+数据流模型",[359,2767,2768,2769,2771],{},"用 ",[362,2770,415],{"code":415}," (行为模型) 来描述寄存器（Register）",[359,2773,2768,2774,2776,2777,2779,2780,2783,2784,2787,2788,2606],{},[362,2775,376],{"code":376}," (数据流模型) 或 ",[362,2778,425],{"code":425}," (行为模型) 来描述寄存器之间的组合逻辑，即数据“传输”和处理\n而",[339,2781,2782],{},"综合 (Synthesis)"," 工具的核心工作，就是把 ",[339,2785,2786],{},"RTL 代码","（行为\u002F数据流模型）",[339,2789,2790],{},"“翻译”成一个纯粹的、由标准单元（基本门电路）组成的 Verilog 结构(级)模型（即门级网表 Netlist",[960,2792,2794],{"id":2793},"verilog-的结构级模型",[339,2795,2796],{},"Verilog 的结构(级)模型",[274,2798,2799,2802,2807],{},[277,2800,2801],{},"具体指的就是：",[277,2803,2804],{},[339,2805,2806],{},"通过“实例化”（Instantiation）已有的、更低级的模块，并定义它们之间端口连接方式来描述电路",[277,2808,2809],{},"的编码方式。",[2419,2811],{},[320,2813,2814],{"id":2814},"设计基础",[331,2816,2818,2819],{"id":2817},"vlsifpga设计流程自顶向下与自底向上在设计中的作用是什么前端设计方法学是怎样的","VLSI\u002FFPGA设计流程？自顶向下与自底向上在设计中的作用是什么？",[277,2820,2821],{},"前端设计方法学是怎样的？",[274,2823,2824,2825,564],{},"VLSI (ASIC)以及FPGA的设计流程分为“前端”和“后端”，",[339,2826,2827],{},"两者以“逻辑综合”为界",[960,2829,2830],{"id":2830},"前端设计流程",[274,2832,2833],{},"前端设计中，VLSI 和 FPGA 基本相同",[724,2835,2836,2842,2848,2854,2860],{},[359,2837,2838,2841],{},[339,2839,2840],{},"需求规格 (Specification)",": 定义芯片的功能、性能（速度）、功耗、面积等指标。",[359,2843,2844,2847],{},[339,2845,2846],{},"架构设计 (Architecture Design)",": 根据需求，设计系统的高层框图，划分主要功能模块（如 CPU 核、内存控制器、外设接口等），定义模块间的接口和时序。",[359,2849,2850,2853],{},[339,2851,2852],{},"RTL 描述 (RTL Description)",": 使用硬件描述语言 (HDL，如 Verilog 或 VHDL) 对每个模块的行为和数据流动进行代码实现。",[359,2855,2856,2859],{},[339,2857,2858],{},"功能验证 (Functional Verification)",": 编写测试平台 (Testbench)，通过仿真 (Simulation) 来验证 RTL 代码的功能是否符合设计规格。",[359,2861,2862,2865],{},[339,2863,2864],{},"逻辑综合 (Logic Synthesis)",": 使用EDA工具（如 Synopsys Design Compiler）将 HDL 代码“翻译”成由基本逻辑门（与门、或门、触发器等）组成的门级网表 (Gate-level Netlist)。",[960,2867,2868],{"id":2868},"后端设计流程",[274,2870,2871],{},"后端设计中，VLSI 和 FPGA 有一定的区别",[990,2873,2875],{"id":2874},"vlsi-asic-后端流程","VLSI (ASIC) 后端流程：",[724,2877,2878,2884,2910,2930,2936],{},[359,2879,2880,2883],{},[339,2881,2882],{},"布局规划 (Floorplanning)",": 规划芯片上各个大模块（宏单元）的摆放位置。",[359,2885,2886,2889,2890],{},[339,2887,2888],{},"布局布线 (Place & Route, P&R)",":\n",[356,2891,2892,2898,2904],{},[359,2893,2894,2897],{},[339,2895,2896],{},"布局 (Placement)",": 确定标准单元（逻辑门）的具体物理位置。",[359,2899,2900,2903],{},[339,2901,2902],{},"时钟树综合 (CTS)",": 生成时钟网络，确保时钟信号低延迟、低偏移地到达所有触发器。",[359,2905,2906,2909],{},[339,2907,2908],{},"布线 (Routing)",": 使用金属层连接所有单元，形成完整的电路。",[359,2911,2912,2915,2916],{},[339,2913,2914],{},"物理验证 (Physical Verification)",": 确保物理版图 (Layout) 正确。\n",[356,2917,2918,2924],{},[359,2919,2920,2923],{},[339,2921,2922],{},"DRC (Design Rule Check)",": 检查版图是否符合制造厂的工艺规则（如最小线宽、间距）。",[359,2925,2926,2929],{},[339,2927,2928],{},"LVS (Layout vs. Schematic)",": 检查版图提取出的电路，是否与综合后的门级网表一致。",[359,2931,2932,2935],{},[339,2933,2934],{},"流片实现 (Tape-out)",": 将最终的GDSII版图文件交给芯片代工厂 (Foundry) 进行制造。",[359,2937,2938,2941],{},[339,2939,2940],{},"板级验证 (Board-level Verification)",": 芯片制造回来后，焊接到 PCB 板上进行真实环境的测试。",[990,2943,2945],{"id":2944},"fpga-后端流程","FPGA 后端流程：",[274,2947,2948],{},"FPGA 流程相对简单，因为物理结构是固定的",[724,2950,2951,2971,2977],{},[359,2952,2953,2956,2957],{},[339,2954,2955],{},"实现 (Implementation)",": 对应 ASIC 的 P&R。\n",[356,2958,2959,2965],{},[359,2960,2961,2964],{},[339,2962,2963],{},"布局 (Place)",": 将综合后的逻辑“映射”并“放置”到 FPGA 内部的逻辑单元 (LUT, FF) 上。",[359,2966,2967,2970],{},[339,2968,2969],{},"布线 (Route)",": 利用 FPGA 内部的可编程布线资源连接这些逻辑单元。",[359,2972,2973,2976],{},[339,2974,2975],{},"生成比特流 (Bitstream Generation)",": 将布局布线的结果生成一个 .bit 配置文件。",[359,2978,2979,2981],{},[339,2980,2940],{},": 将比特流下载到 FPGA 芯片中，在开发板上验证实际功能。",[960,2983,2984],{"id":2984},"自顶向下与自底向上",[724,2986,2987,2993,2999],{},[359,2988,2989,2992],{},[339,2990,2991],{},"自顶向下 (Top-down)",": 适用于较为大型且复杂的系统设计，具有全局视角和模块化结构，自顶向下可以将一个复杂的系统（如一颗 SoC）分解为CPU、GPU、总线、内存控制器等子模块，并定义好它们之间的接口。",[359,2994,2995,2998],{},[339,2996,2997],{},"自底向上 (Bottom-up)",": 适用于较为小型的系统或已有模块的可重用项目，能够更快地验证基础功能。比如使用 IP 核就是一种“自底向上”的设计，在实现一些子模块时，会大量使用 IP (Intellectual Property) 核。这些 IP 核（例如一个现成的 USB 控制器或一个 ARM CPU 核）是预先设计和验证好的、可重用的模块。",[359,3000,3001,3004],{},[339,3002,3003],{},"混合式 (Meet-in-the-middle)",": 但是在现代 IC 设计中，大多时候都是采用“混合式”的方法，架构师“自顶向下”定义框架，工程师“自底向上”用 IP 或标准单元库搭建模块，最终在系统层面集成起来。",[960,3006,3008],{"id":3007},"前端设计方法学",[277,3009,3007],{},[274,3011,3012],{},[327,3013],{"alt":327,"src":3014},"\u002Fimg\u002FHDL\u002FFeiQilai1-31.png",[274,3016,3017,399,3020,399,3023],{},[277,3018,3019],{},"前端设计方法学是一种",[277,3021,3022],{},"从行为描述，到RTL（寄存器传输级）设计、验证与综合的连贯流程",[277,3024,3025],{},"。其核心是如何从“系统功能”转变为“门级网表”",[274,3027,3028,3031,3032,3035],{},[339,3029,3030],{},"前端设计方法学 (Front-end Design Methodology)"," ——将一个抽象的",[339,3033,3034],{},"算法或功能概念","，一步步地转变为一个具高效、正确、可验证和可综合的 RTL 代码。",[724,3037,3038,3048,3078,3084,3090],{},[359,3039,3040,3043,3044,3047],{},[339,3041,3042],{},"行为（功能需求）描述 (Behavioral Description)","——确定",[339,3045,3046],{},"算法的功能和逻辑","，而不关心具体的硬件实现；具体使用流图或者可执行代码来实现",[359,3049,3050,3052,3053,3056,3057],{},[339,3051,2846],{},"——将抽象的“行为”",[339,3054,3055],{},"划分 (Partition)"," 成可以协同工作的硬件模块。即 FSM + Datapath 架构：\n",[356,3058,3059,3072],{},[359,3060,3061,3064,3065,1762,3068,3071],{},[339,3062,3063],{},"控制器 (Controller \u002F FSM):"," 作为“大脑”，是一个有限状态机，负责发出控制命令（如 ",[362,3066,3067],{"code":3067},"wait",[362,3069,3070],{"code":3070},"run","）和决策。",[359,3073,3074,3077],{},[339,3075,3076],{},"数据通路 (Datapath):"," 负责存储数据（用寄存器）并执行所有运算（如加法、减法、比较）。",[359,3079,3080,3083],{},[339,3081,3082],{},"RTL 代码编写 (RTL Coding)","——使用硬件描述语言 (HDL，如 Verilog 或 VHDL)，将“控制器”和“数据通路”翻译成可综合的寄存器传输级 (RTL) 代码。",[359,3085,3086,3089],{},[339,3087,3088],{},"验证 (Verification \u002F 测试台)","——编写一个“测试台 (Testbench)”——这是另一段（不可综合的）代码，用于模拟各种输入激励，并自动检查 RTL 模块的输出是否符合预期。",[359,3091,3092,3094],{},[339,3093,2864],{},"——使用综合器（如 Synopsys Design Compiler 或 Vivado Synthesis）将RTL 代码转换为由逻辑门和触发器构成的门级网表",[2419,3096],{},[270,3098,3099,3102],{"type":272},[274,3100,3101],{},"感觉这个有点少",[724,3103,3104,3110,3116],{},[359,3105,3106,3109],{},[339,3107,3108],{},"基于 HDL 的抽象","：使用 Verilog\u002FVHDL 在寄存器传输级 (Register Transfer Level, RTL) 对电路进行行为描述。RTL 关注的是数据如何在时钟的驱动下，在寄存器之间流动和处理。",[359,3111,3112,3115],{},[339,3113,3114],{},"综合 (Synthesis) 自动化","：设计者只需编写功能正确的 RTL 代码，并提供时序、面积等约束 (Constraints)，EDA 综合工具会自动将其转换为门级网表。",[359,3117,3118,3121],{},[339,3119,3120],{},"验证驱动 (Verification-driven)","：由于设计规模巨大，验证（仿真）的复杂度远超设计本身。现代前端方法学（如 UVM）强调在设计初期就制定完备的验证计划，通过搭建可重用的、高覆盖率的测试平台来确保 RTL 功能的正确性，在流片前尽可能多地发现 Bug。",[2419,3123],{},[331,3125,3127],{"id":3126},"关键路径虚假路径冗余路径的概念不可到达状态沉没状态的概念设计评价面积时钟性能功耗",[277,3128,3129],{},"关键路径、虚假路径、冗余路径的概念？不可到达状态、沉没状态的概念？设计评价：面积\u002F时钟(性能)\u002F功耗",[960,3131,3132],{"id":3132},"关键路径",[274,3134,3135],{},[327,3136],{"alt":327,"src":3137},"\u002Fimg\u002FHDL\u002FFeiQilai1-32.png",[274,3139,3140,3144],{},[277,3141,3142],{},[339,3143,3132],{},[277,3145,3146],{},"是指：",[724,3148,3149,3160],{},[359,3150,3151,3154,3159],{},[277,3152,3153],{},"在同步时序电路中，",[277,3155,3156],{},[339,3157,3158],{},"信号传播延迟时间最长的那条路径","。通常指两个相邻触发器 (FF) 之间的组合逻辑路径。",[359,3161,3162,3165,3170,3173,3174,3177],{},[277,3163,3164],{},"关键路径延迟决定了",[277,3166,3167],{},[339,3168,3169],{},"电路的最小时钟周期",[277,3171,3172],{},"，","从而决定了系统的",[339,3175,3176],{},"最高工作频率","。静态时序分析 (STA) 的核心任务就是找到并优化关键路径。",[960,3179,3180],{"id":3180},"虚假路径",[431,3182,3183],{"style":966},[456,3184,3185],{},[437,3186,972,3187,972,3194],{"style":971},[461,3188,3189,972],{"style":1383},[274,3190,3191],{},[327,3192],{"alt":327,"src":3193},"\u002Fimg\u002FHDL\u002FFeiQilai1-33.png",[461,3195,3196,972],{"style":1375},[274,3197,3198],{},[327,3199],{"alt":327,"src":3200},"\u002Fimg\u002FHDL\u002FFeiQilai1-34.png",[274,3202,3203,3207],{},[277,3204,3205],{},[339,3206,3180],{},[277,3208,3209],{},"是指",[356,3211,3212],{},[359,3213,3214,3217,3222,3224],{},[277,3215,3216],{},"一条",[277,3218,3219],{},[339,3220,3221],{},"由于逻辑条件的约束，在物理结构上存在，但在逻辑功能上不会被激活的路径",[277,3223,564],{},[270,3225,3226,3232],{"type":272},[274,3227,3228,3229,3231],{},"比如一个",[277,3230,1144],{},"，由控制信号S选择输入A。此时从输入B到输出的路径虽然物理存在，但逻辑上永远不通，这就是一条虚假路径。",[274,3233,3234],{},"必须在约束中明确告知 STA 工具这些路径是虚假路径 (如使用 set_false_path 命令)，否则工具会错误地将其（如果延迟很长）当作关键路径来优化，浪费资源并可能导致时序无法收敛。",[960,3236,3237],{"id":3237},"冗余路径",[431,3239,3240],{"style":966},[456,3241,3242],{},[437,3243,972,3244,972,3251],{"style":971},[461,3245,3246,972],{"style":1375},[274,3247,3248],{},[327,3249],{"alt":327,"src":3250},"\u002Fimg\u002FHDL\u002FFeiQilai1-35.png",[461,3252,3253,972],{"style":1383},[274,3254,3255],{},[327,3256],{"alt":327,"src":3257},"\u002Fimg\u002FHDL\u002FFeiQilai1-36.png",[274,3259,3260,3264,3267,3272,3274,3277,3282],{},[277,3261,3262],{},[339,3263,3237],{},[277,3265,3266],{},"指电路中",[277,3268,3269],{},[339,3270,3271],{},"那些可以被移除，而不改变其静态逻辑功能的门或连线",[277,3273,564],{},[277,3275,3276],{},"（",[277,3278,3279],{},[339,3280,3281],{},"可以被激活",[277,3283,3284],{},"，但其结果“无关紧要”）。",[274,3286,3287],{},"冗余路径带来的问题：",[724,3289,3290,3296],{},[359,3291,3292,3295],{},[339,3293,3294],{},"浪费 PPA","： 浪费芯片面积，并产生不必要的静态和动态功耗。",[359,3297,3298,3301],{},[339,3299,3300],{},"降低可测性","： 冗余逻辑会导致某些“固定型故障” (Stuck-at Faults) 无法被检测（即故障被屏蔽），从而降低芯片的测试覆盖率。\n逻辑综合工具的一个主要目标就是识别并消除有害的冗余逻辑。",[960,3303,3304],{"id":3304},"不可到达状态",[274,3306,3307],{},[327,3308],{"alt":327,"src":3309},"\u002Fimg\u002FHDL\u002FFeiQilai1-37.png",[274,3311,3312,3314,3319],{},[277,3313,1653],{},[277,3315,3316],{},[339,3317,3318],{},"有限状态机 (FSM) 中，从“复位状态” (Reset State) 开始，无论通过怎样的输入序列，都永远无法进入的状态",[277,3320,564],{},[274,3322,3323],{},"不可到达状态带来的问题：",[724,3325,3326,3332],{},[359,3327,3328,3331],{},[339,3329,3330],{},"资源浪费","： 它们占用了状态编码（需要触发器），但从未被使用。",[359,3333,3334,3337],{},[339,3335,3336],{},"较差的鲁棒性","： 尽管逻辑上不可达，但噪声或毛刺可能使 FSM 意外跳入这些状态。设计时应确保即使进入了不可达状态，也能有一个明确的路径返回到已知状态，而不是卡死。",[960,3339,3341],{"id":3340},"沉没状态",[339,3342,3340],{},[274,3344,3345,3348,3353],{},[277,3346,3347],{},"这是",[277,3349,3350],{},[339,3351,3352],{},"一个（或一组）状态，FSM 一旦进入，就再也无法通过任何输入序列跳出到该状态（组）之外",[277,3354,564],{},[274,3356,3357],{},"绝大多数情况下，这是较为严重的设计缺陷，会导致系统“卡死”或“锁定”。",[270,3359,3360],{"type":272},[274,3361,3362],{},[277,3363,3364],{},[339,3365,3366],{},"不可到达状态是只能出不能进，沉没状态是只能进不能出",[960,3368,3370],{"id":3369},"设计评价面积时钟性能功耗","设计评价：面积\u002F时钟(性能)\u002F功耗",[274,3372,3373],{},[327,3374],{"alt":327,"src":3375},"\u002Fimg\u002FHDL\u002FFeiQilai1-38.png",[270,3377,3378],{"type":272},[274,3379,3380,3381,3384],{},"这是评价一个 IC 设计好坏的三个核心且",[339,3382,3383],{},"相互制约","的指标。",[990,3386,3387],{"id":3387},"面积",[724,3389,3390,3393],{},[359,3391,3392],{},"在 ASIC 中指最终版图的物理面积；在 FPGA 中指占用的逻辑资源；",[359,3394,3395,3396,3399,3400],{},"在设计早期也常用",[339,3397,3398],{},"“等效NAND2门数”","来估算。\n",[270,3401,3402],{"type":272},[274,3403,3404],{},"NAND 2 ——二输入与非门",[990,3406,3407],{"id":3407},"性能",[274,3409,3410],{},"最核心指标是最高工作频率（由关键路径决定）。其他指标还包括吞吐量（单位时间处理的数据量）和延迟（完成一次操作所需的时间）。",[990,3412,3413],{"id":3413},"功耗",[274,3415,3416],{},"分为两部分：",[724,3418,3419,3422],{},[359,3420,3421],{},"动态功耗: 电路翻转时产生的功耗。",[359,3423,3424,3425,3428,3429,564],{},"静态功耗: 也称泄漏功耗 (Leakage)。晶体管即使在关闭状态下也存在的泄漏电流 ( ",[362,3426,3427],{"code":3427},"I_{leakage}",") 导致的功耗。\n",[277,3430,3431],{},"在先进工艺 (28nm 及以下) 中，静态功耗已成为总功耗的主要部分",[990,3433,3434],{"id":3434},"权衡",[274,3436,3437],{},"这三者是相互冲突的。例如：",[356,3439,3440,3443],{},[359,3441,3442],{},"提高性能通常需要增加功耗，也可能增加面积（插入 Buffer）。",[359,3444,3445],{},"减少面积可能导致布线拥挤增加延迟降低性能。\n设计的目标就是在三者之间找到符合产品需求的最优平衡点。",[2419,3447],{},[331,3449,3451,3454,3455,3454,3458],{"id":3450},"asm图方法-系统框图概念与形式-如何编写控制器状态机数据通路的verilog代码",[277,3452,3453],{},"ASM图方法、","    ",[277,3456,3457],{},"系统框图概念与形式，",[277,3459,3460],{},"如何编写控制器\u002F状态机、数据通路的Verilog代码？",[960,3462,3464],{"id":3463},"asm图方法算法状态机","ASM图方法（算法状态机）",[274,3466,3467],{},[327,3468],{"alt":327,"src":3469},"\u002Fimg\u002FHDL\u002FFeiQilai1-39.png",[274,3471,3472,3473,3478],{},"ASM 图是一种用于描述数字系统行为的专用流程图。它与普通流程图的最大区别在于，它",[277,3474,3475],{},[339,3476,3477],{},"将控制逻辑（状态）与数据通路（操作）联系起来，并内置了时钟周期的概念",[277,3479,564],{},[274,3481,3482,3483,3486],{},"由",[277,3484,3485],{},"状态框、判断框、条件输出框","组成：",[724,3488,3489,3503,3516],{},[359,3490,3491,3494,3495],{},[339,3492,3493],{},"状态框",":",[356,3496,3497,3500],{},[359,3498,3499],{},"形状：矩形。",[359,3501,3502],{},"含义： 代表一个 FSM 状态。\n框内列出在该状态下（无论条件如何）始终为真的 Moore 型输出和无条件的数据操作（例如：regA \u003C= regB）。",[359,3504,3505,3494,3508],{},[339,3506,3507],{},"判断框",[356,3509,3510,3513],{},[359,3511,3512],{},"形状： 菱形。",[359,3514,3515],{},"含义： 检查一个或多个输入信号或数据通路的状态（例如 counter == 0）。\n它本身不消耗时间，在一个时钟周期内完成判断，并引出两个分支（True \u002F False）。",[359,3517,3518,3494,3521],{},[339,3519,3520],{},"条件输出框",[356,3522,3523,3526],{},[359,3524,3525],{},"形状： 椭圆形或圆角矩形。",[359,3527,3528],{},"含义： 代表 Mealy 型输出或有条件的数据操作。\n只有当判断框的路径为 True 时，这些输出或操作才会在当前状态下被激活。",[274,3530,3531],{},"ASM 图的一个“状态路径”（从一个状态框出发，经过若干判断框和条件输出框，最终到达下一个状态框）中的所有操作，都在一个时钟周期内完成。",[274,3533,3534],{},[327,3535],{"alt":327,"src":3536},"\u002Fimg\u002FHDL\u002FFeiQilai1-40.png",[960,3538,3539],{"id":3539},"系统框图",[274,3541,3542],{},[327,3543],{"alt":327,"src":3544},"\u002Fimg\u002FHDL\u002FFeiQilai1-41.png",[274,3546,3547,3549,3551,3556,3559,3564,3567],{},[277,3548,3539],{},[277,3550,528],{},[277,3552,3553],{},[339,3554,3555],{},"描述模块组成",[277,3557,3558],{},"和他们之间",[277,3560,3561],{},[339,3562,3563],{},"连接关系",[277,3565,3566],{},"的框图","，包括：",[724,3569,3570,3576,3582],{},[359,3571,3572,3575],{},[339,3573,3574],{},"方框",": 代表主要的硬件模块，如 “控制器(FSM)”、“数据通路(Datapath)”、“ALU”、“寄存器堆(Register File)”、“内存接口”等。",[359,3577,3578,3581],{},[339,3579,3580],{},"连线",": 代表信号和数据总线（标注信号名和位宽、流向等）",[359,3583,3584,3587,3588,3591],{},[339,3585,3586],{},"标注",": 必须清晰标注信号的名称 (如 data_bus)、流向 (用箭头) 和位宽 (如 ",[1719,3589,3590],{},"31:0",")。\n它是架构设计的核心产物，用于指导后续的RTL编码。它定义了整个系统的接口 (Interface) 和模块划分 (Modularity)。",[270,3593,3594],{"type":272},[274,3595,3596],{},"下面两个FSM以及DataPath的具体实例细节可以回到前面Verilog基础部分看",[960,3598,3600],{"id":3599},"编写控制器-fsm-状态机","编写控制器 (FSM - 状态机)",[274,3602,3603],{},"控制器的Verilog代码本质上是在描述一个有限状态机，过程如下：",[724,3605,3606,3621],{},[359,3607,3608,3611,3612,1762,3615,1762,3618,1274],{},[339,3609,3610],{},"定义状态","：定义所有状态的名称和编码（如 ",[362,3613,3614],{"code":3614},"IDLE",[362,3616,3617],{"code":3617},"CALC",[362,3619,3620],{"code":3620},"DONE",[359,3622,3623,3626,3629,3630],{},[339,3624,3625],{},"“三段式”",[339,3627,3628],{},"状态机编写","：\n",[724,3631,3632,3647,3665],{},[359,3633,3634,399,3637,3640,3641,3644,3645,564],{},[339,3635,3636],{},"状态更新",[339,3638,3639],{},"(时序逻辑)","： 编写一个 ",[362,3642,3643],{"code":3643},"always_ff"," 块。在时钟沿更新当前状态 ",[362,3646,1431],{"code":1431},[359,3648,3649,399,3652,3640,3655,3658,3659,3661,3662,3664],{},[339,3650,3651],{},"次态计算",[339,3653,3654],{},"(组合逻辑)",[362,3656,3657],{"code":3657},"always_comb"," 块，通常使用 case 语句。它的工作是根据 当前状态",[362,3660,1431],{"code":1431}," 和外部输入，来决定下一个状态 (",[362,3663,1438],{"code":1438},") 应该是什么。",[359,3666,3667,3670,3672,3673,3675,3676,3276,3678,3681],{},[339,3668,3669],{},"组合输出",[339,3671,3654],{},"： 编写另一个 ",[362,3674,3657],{"code":3657}," 块或使用 assign。根据当前状态",[362,3677,1431],{"code":1431},[339,3679,3680],{},"如果是Mealy型，还包括外部输入","），确定输出的控制信号",[960,3683,3684],{"id":3684},"编写数据通路",[274,3686,3687],{},"数据通路不关心状态，只负责执行操作。它的Verilog代码是在描述和连接硬件组件：",[724,3689,3690,3715],{},[359,3691,3692,3695,3698,3629,3700],{},[339,3693,3694],{},"描述寄存器(存储",[339,3696,3697],{},"单元",[339,3699,1569],{},[356,3701,3702,3708],{},[359,3703,3704,3705,3707],{},"为所有需要存储数据的单元（如寄存器、计数器）编写 ",[362,3706,3643],{"code":3643}," 块。",[359,3709,3710,3711,3714],{},"这些块的使能信号（如 ",[362,3712,3713],{"code":3713},"if (reg_write_enable)","）直接由控制器的输出控制信号驱动。",[359,3716,3717,3629,3720],{},[339,3718,3719],{},"描述运算和选择(操作)",[356,3721,3722,3725,3746],{},[359,3723,3724],{},"使用组合逻辑描述运算器（加法器、ALU）和选择器（MUX）",[359,3726,3727,3728,3730,3731,3733,3734],{},"这通常用 ",[362,3729,376],{"code":376}," 语句或 ",[362,3732,3657],{"code":3657}," 块来实现。",[270,3735,3736,3741],{"type":272},[274,3737,373,3738,2606],{},[362,3739,3740],{"code":3740},"assign sum = a + b;",[274,3742,3743,3745],{},[362,3744,3657],{"code":3657}," 块用于复杂的MUX或ALU",[359,3747,3748,3749,2606,3752,3755,3756,564,3759],{},"这些单元的选择信号（如 ",[362,3750,3751],{"code":3751},"mux_select",[339,3753,3754],{},"也由控制器","的输出控制信号",[339,3757,3758],{},"驱动",[270,3760,3761],{"type":272},[274,3762,3763,3764,3766,3767,1120,3769,3771],{},"数据通路就是用 ",[362,3765,3643],{"code":3643}," 描述所有“存东西”的部件，用 ",[362,3768,376],{"code":376},[362,3770,3657],{"code":3657}," 描述所有“算东西”和“选东西”的部件，而所有这些部件的“开关”都由控制器来控制。",[2419,3773],{},[331,3775,3777],{"id":3776},"什么是综合可综合的关键1-基于rtl描述的前提2-可以通过综合工具将verilog行为级代码变成基于特定工艺的标准单元的门级表示3-综合前后的模拟行为未改变",[277,3778,3779],{},"什么是综合？可综合的关键：1 基于RTL描述的前提；2 可以通过综合工具将Verilog行为级代码变成基于特定工艺的标准单元的门级表示；3 综合前后的模拟行为未改变",[960,3781,3783],{"id":3782},"综合是通过代工厂的标准门级单元库将rtl代码映射成电路实现的并且综合前后的模拟行为一致",[277,3784,3785],{},"综合是通过代工厂的标准门级单元库，将RTL代码映射成电路实现的，并且综合前后的模拟行为一致",[274,3787,3788,2783,3790,2787,3792,2606],{},[339,3789,2782],{},[339,3791,2786],{},[339,3793,2790],{},[274,3795,3796],{},"主要是记住这个吧",[960,3798,3800,513],{"id":3799},"可综合的关键",[339,3801,3799],{},[274,3803,3804],{},[277,3805,3806],{},"1 基于RTL描述的前提",[274,3808,3809],{},[277,3810,3811],{},"2 可以通过综合工具将Verilog行为级代码变成基于特定工艺的标准单元的门级表示",[274,3813,3814],{},[277,3815,3816],{},"3 综合前后的模拟行为未改变",[2419,3818],{},[331,3820,3822],{"id":3821},"testbench的主要框架是根据测试向量检查测试结果来进行设计实例的测试测试向量可以通过initial与延迟按时间串行执行主要是随机生成的或者已知结果的测试测试结果主要通过测试覆盖率来保证实际是依赖于工具的代码测试覆盖率testbench的主要作用是重用与回归测试",[277,3823,3824],{},"Testbench的主要框架是根据测试向量、检查测试结果来进行设计实例的测试，测试向量(可以通过initial与延迟按时间串行执行)主要是随机生成的或者已知结果的测试。测试结果主要通过测试覆盖率来保证，实际是依赖于工具的代码测试覆盖率。Testbench的主要作用是重用与回归测试",[274,3826,3827],{},"分成几句话理解：",[960,3829,3831],{"id":3830},"testbench的主要框架是根据测试向量检查测试结果来进行设计实例的测试",[277,3832,3833],{},"Testbench的主要框架是根据测试向量、检查测试结果来进行设计实例的测试",[274,3835,3836],{},"怎么测试？用测试向量和检查测试结果来测试设计的实例",[960,3838,3840],{"id":3839},"测试向量可以通过initial与延迟按时间串行执行主要是随机生成的或者已知结果的测试",[277,3841,3842],{},"测试向量(可以通过initial与延迟按时间串行执行)主要是随机生成的或者已知结果的测试",[274,3844,3845],{},"测试向量哪来？随机生成的或已知结果的测试",[960,3847,3849],{"id":3848},"测试结果主要通过测试覆盖率来保证实际是依赖于工具的代码测试覆盖率",[277,3850,3851],{},"测试结果主要通过测试覆盖率来保证，实际是依赖于工具的代码测试覆盖率",[274,3853,3854],{},"怎么知道测试结果好不好？用测试覆盖率",[960,3856,3858],{"id":3857},"testbench的主要作用是重用与回归测试",[277,3859,3860],{},"Testbench的主要作用是重用与回归测试",[274,3862,3863,3864,3867,3868,3871,3872],{},"今天写的",[339,3865,3866],{},"RTL 级"," Testbench，等你的设计被",[339,3869,3870],{},"综合","成门级网表后，这个 Testbench 还可以",[339,3873,3874],{},"重用，重新运行（回归）你所有的 1000 个测试用例。这个过程就叫回归测试",[274,3876,3877],{},"当设计更新后，验证工程师只需重新运行（即“回归”）这一整套自动化的测试用例集。测试台会自动施加所有激励并报告任何因代码修改而导致的功能失效 。这确保了设计的健壮性，是“回归测试”的真正价值所在。",[2419,3879],{},[331,3881,3883],{"id":3882},"全加器半加器进位保留加法器先行进位加法器进位跳跃加法器进位选择加法器的概念",[277,3884,3885],{},"全加器、半加器、进位保留加法器、先行进位加法器、进位跳跃加法器、进位选择加法器的概念",[960,3887,3889],{"id":3888},"半加器",[339,3890,3888],{},[356,3892,3893,3896],{},[359,3894,3895],{},"实现两个 1-bit 二进制数相加。",[359,3897,3898,3899],{},"无法处理来自低位的进位, 因此不能单独用作多位加法器的基本单元。\n",[362,3900,3901],{"code":3901},"sum = a ^ b",[274,3903,3904],{},[362,3905,3906],{"code":3906},"c_out = a & b",[960,3908,3910],{"id":3909},"全加器",[339,3911,3909],{},[356,3913,3914],{},[359,3915,3916],{},"实现三个 1-bit 二进制数相加。这是构成多位加法器的基本单元。\n表达式：",[274,3918,3919,399,4100],{},[1719,3920,3922,3965],{"className":3921},[2629],[1719,3923,3925],{"className":3924},[2633],[2635,3926,3927],{"xmlns":2637},[2639,3928,3929,3962],{},[2642,3930,3931,3935,3937,3940,3943,3946,3948],{},[3932,3933,3934],"mi",{},"S",[2645,3936,1552],{},[3932,3938,3939],{},"A",[2645,3941,3942],{},"⊕",[3932,3944,3945],{},"B",[2645,3947,3942],{},[3949,3950,3951,3954],"msub",{},[3932,3952,3953],{},"C",[2642,3955,3956,3959],{},[3932,3957,3958],{},"i",[3932,3960,3961],{},"n",[2649,3963,3964],{"encoding":2651},"S = A \\oplus B \\oplus C_{in}",[1719,3966,3968,3992,4013,4032],{"className":3967,"ariaHidden":2657},[2656],[1719,3969,3971,3975,3981,3986,3989],{"className":3970},[2661],[1719,3972],{"className":3973,"style":3974},[2665],"height:0.6833em;",[1719,3976,3934],{"className":3977,"style":3980},[3978,3979],"mord","mathnormal","margin-right:0.0576em;",[1719,3982],{"className":3983,"style":3985},[3984],"mspace","margin-right:0.2778em;",[1719,3987,1552],{"className":3988},[2670],[1719,3990],{"className":3991,"style":3985},[3984],[1719,3993,3995,3999,4002,4006,4010],{"className":3994},[2661],[1719,3996],{"className":3997,"style":3998},[2665],"height:0.7667em;vertical-align:-0.0833em;",[1719,4000,3939],{"className":4001},[3978,3979],[1719,4003],{"className":4004,"style":4005},[3984],"margin-right:0.2222em;",[1719,4007,3942],{"className":4008},[4009],"mbin",[1719,4011],{"className":4012,"style":4005},[3984],[1719,4014,4016,4019,4023,4026,4029],{"className":4015},[2661],[1719,4017],{"className":4018,"style":3998},[2665],[1719,4020,3945],{"className":4021,"style":4022},[3978,3979],"margin-right:0.0502em;",[1719,4024],{"className":4025,"style":4005},[3984],[1719,4027,3942],{"className":4028},[4009],[1719,4030],{"className":4031,"style":4005},[3984],[1719,4033,4035,4039],{"className":4034},[2661],[1719,4036],{"className":4037,"style":4038},[2665],"height:0.8333em;vertical-align:-0.15em;",[1719,4040,4042,4046],{"className":4041},[3978],[1719,4043,3953],{"className":4044,"style":4045},[3978,3979],"margin-right:0.0715em;",[1719,4047,4050],{"className":4048},[4049],"msupsub",[1719,4051,4055,4091],{"className":4052},[4053,4054],"vlist-t","vlist-t2",[1719,4056,4059,4086],{"className":4057},[4058],"vlist-r",[1719,4060,4064],{"className":4061,"style":4063},[4062],"vlist","height:0.3117em;",[1719,4065,4067,4072],{"style":4066},"top:-2.55em;margin-left:-0.0715em;margin-right:0.05em;",[1719,4068],{"className":4069,"style":4071},[4070],"pstrut","height:2.7em;",[1719,4073,4079],{"className":4074},[4075,4076,4077,4078],"sizing","reset-size6","size3","mtight",[1719,4080,4082],{"className":4081},[3978,4078],[1719,4083,4085],{"className":4084},[3978,3979,4078],"in",[1719,4087,4090],{"className":4088},[4089],"vlist-s","​",[1719,4092,4094],{"className":4093},[4058],[1719,4095,4098],{"className":4096,"style":4097},[4062],"height:0.15em;",[1719,4099],{},[339,4101,4102],{},"和即为三者的异或",[274,4104,4105,399,4457],{},[1719,4106,4108,4189],{"className":4107},[2629],[1719,4109,4111],{"className":4110},[2633],[2635,4112,4113],{"xmlns":2637},[2639,4114,4115,4186],{},[2642,4116,4117,4132,4134,4137,4139,4142,4144,4146,4148,4150,4152,4154,4164,4166,4168,4170,4172,4174,4184],{},[3949,4118,4119,4121],{},[3932,4120,3953],{},[2642,4122,4123,4126,4129],{},[3932,4124,4125],{},"o",[3932,4127,4128],{},"u",[3932,4130,4131],{},"t",[2645,4133,1552],{},[2645,4135,4136],{"stretchy":1128},"(",[3932,4138,3939],{},[2645,4140,4141],{},"⋅",[3932,4143,3945],{},[2645,4145,1569],{"stretchy":1128},[2645,4147,1966],{},[2645,4149,4136],{"stretchy":1128},[3932,4151,3939],{},[2645,4153,4141],{},[3949,4155,4156,4158],{},[3932,4157,3953],{},[2642,4159,4160,4162],{},[3932,4161,3958],{},[3932,4163,3961],{},[2645,4165,1569],{"stretchy":1128},[2645,4167,1966],{},[2645,4169,4136],{"stretchy":1128},[3932,4171,3945],{},[2645,4173,4141],{},[3949,4175,4176,4178],{},[3932,4177,3953],{},[2642,4179,4180,4182],{},[3932,4181,3958],{},[3932,4183,3961],{},[2645,4185,1569],{"stretchy":1128},[2649,4187,4188],{"encoding":2651},"C_{out} = (A \\cdot B) + (A \\cdot C_{in}) + (B \\cdot C_{in})",[1719,4190,4192,4257,4280,4302,4323,4384,4405],{"className":4191,"ariaHidden":2657},[2656],[1719,4193,4195,4198,4248,4251,4254],{"className":4194},[2661],[1719,4196],{"className":4197,"style":4038},[2665],[1719,4199,4201,4204],{"className":4200},[3978],[1719,4202,3953],{"className":4203,"style":4045},[3978,3979],[1719,4205,4207],{"className":4206},[4049],[1719,4208,4210,4240],{"className":4209},[4053,4054],[1719,4211,4213,4237],{"className":4212},[4058],[1719,4214,4217],{"className":4215,"style":4216},[4062],"height:0.2806em;",[1719,4218,4219,4222],{"style":4066},[1719,4220],{"className":4221,"style":4071},[4070],[1719,4223,4225],{"className":4224},[4075,4076,4077,4078],[1719,4226,4228,4231,4234],{"className":4227},[3978,4078],[1719,4229,4125],{"className":4230},[3978,3979,4078],[1719,4232,4128],{"className":4233},[3978,3979,4078],[1719,4235,4131],{"className":4236},[3978,3979,4078],[1719,4238,4090],{"className":4239},[4089],[1719,4241,4243],{"className":4242},[4058],[1719,4244,4246],{"className":4245,"style":4097},[4062],[1719,4247],{},[1719,4249],{"className":4250,"style":3985},[3984],[1719,4252,1552],{"className":4253},[2670],[1719,4255],{"className":4256,"style":3985},[3984],[1719,4258,4260,4264,4268,4271,4274,4277],{"className":4259},[2661],[1719,4261],{"className":4262,"style":4263},[2665],"height:1em;vertical-align:-0.25em;",[1719,4265,4136],{"className":4266},[4267],"mopen",[1719,4269,3939],{"className":4270},[3978,3979],[1719,4272],{"className":4273,"style":4005},[3984],[1719,4275,4141],{"className":4276},[4009],[1719,4278],{"className":4279,"style":4005},[3984],[1719,4281,4283,4286,4289,4293,4296,4299],{"className":4282},[2661],[1719,4284],{"className":4285,"style":4263},[2665],[1719,4287,3945],{"className":4288,"style":4022},[3978,3979],[1719,4290,1569],{"className":4291},[4292],"mclose",[1719,4294],{"className":4295,"style":4005},[3984],[1719,4297,1966],{"className":4298},[4009],[1719,4300],{"className":4301,"style":4005},[3984],[1719,4303,4305,4308,4311,4314,4317,4320],{"className":4304},[2661],[1719,4306],{"className":4307,"style":4263},[2665],[1719,4309,4136],{"className":4310},[4267],[1719,4312,3939],{"className":4313},[3978,3979],[1719,4315],{"className":4316,"style":4005},[3984],[1719,4318,4141],{"className":4319},[4009],[1719,4321],{"className":4322,"style":4005},[3984],[1719,4324,4326,4329,4372,4375,4378,4381],{"className":4325},[2661],[1719,4327],{"className":4328,"style":4263},[2665],[1719,4330,4332,4335],{"className":4331},[3978],[1719,4333,3953],{"className":4334,"style":4045},[3978,3979],[1719,4336,4338],{"className":4337},[4049],[1719,4339,4341,4364],{"className":4340},[4053,4054],[1719,4342,4344,4361],{"className":4343},[4058],[1719,4345,4347],{"className":4346,"style":4063},[4062],[1719,4348,4349,4352],{"style":4066},[1719,4350],{"className":4351,"style":4071},[4070],[1719,4353,4355],{"className":4354},[4075,4076,4077,4078],[1719,4356,4358],{"className":4357},[3978,4078],[1719,4359,4085],{"className":4360},[3978,3979,4078],[1719,4362,4090],{"className":4363},[4089],[1719,4365,4367],{"className":4366},[4058],[1719,4368,4370],{"className":4369,"style":4097},[4062],[1719,4371],{},[1719,4373,1569],{"className":4374},[4292],[1719,4376],{"className":4377,"style":4005},[3984],[1719,4379,1966],{"className":4380},[4009],[1719,4382],{"className":4383,"style":4005},[3984],[1719,4385,4387,4390,4393,4396,4399,4402],{"className":4386},[2661],[1719,4388],{"className":4389,"style":4263},[2665],[1719,4391,4136],{"className":4392},[4267],[1719,4394,3945],{"className":4395,"style":4022},[3978,3979],[1719,4397],{"className":4398,"style":4005},[3984],[1719,4400,4141],{"className":4401},[4009],[1719,4403],{"className":4404,"style":4005},[3984],[1719,4406,4408,4411,4454],{"className":4407},[2661],[1719,4409],{"className":4410,"style":4263},[2665],[1719,4412,4414,4417],{"className":4413},[3978],[1719,4415,3953],{"className":4416,"style":4045},[3978,3979],[1719,4418,4420],{"className":4419},[4049],[1719,4421,4423,4446],{"className":4422},[4053,4054],[1719,4424,4426,4443],{"className":4425},[4058],[1719,4427,4429],{"className":4428,"style":4063},[4062],[1719,4430,4431,4434],{"style":4066},[1719,4432],{"className":4433,"style":4071},[4070],[1719,4435,4437],{"className":4436},[4075,4076,4077,4078],[1719,4438,4440],{"className":4439},[3978,4078],[1719,4441,4085],{"className":4442},[3978,3979,4078],[1719,4444,4090],{"className":4445},[4089],[1719,4447,4449],{"className":4448},[4058],[1719,4450,4452],{"className":4451,"style":4097},[4062],[1719,4453],{},[1719,4455,1569],{"className":4456},[4292],[339,4458,4459],{},"只要有任意两个为1，就得进位",[960,4461,4463],{"id":4462},"行波进位加法器rca",[339,4464,4465],{},"行波进位加法器(RCA)",[274,4467,4468],{},"这种加法器就是直接把N个全加器串联在一起，但是这样第N个全加器就必须等到第N-1个执行完才能执行，这样就会很慢，下面这些加法器就是来解决这个问题的",[274,4470,4471],{},[327,4472],{"alt":327,"src":4473},"\u002Fimg\u002FHDL\u002FFeiQilai1-42.png",[274,4475,4476],{},"上面这个行波进位加法器，属于是空间增大",[274,4478,4479],{},"下面这个串联加法器是增大时间，“用时间换空间”",[960,4481,4483],{"id":4482},"串联加法器",[339,4484,4482],{},[274,4486,4487],{},"用触发器“记住”进位，只用一个全加器 (FA) ，但我用 N 个时钟周期来完成 N bit 的加法",[274,4489,4490],{},[327,4491],{"alt":327,"src":4492},"\u002Fimg\u002FHDL\u002FFeiQilai1-43.png",[960,4494,4496],{"id":4495},"先行进位加法器cla",[339,4497,4498],{},"先行进位加法器（CLA）",[274,4500,4501,4502,4505],{},"并行计算所有位的进位, 打破 RCA 的",[362,4503,4504],{"code":4504},"O(N)","串行依赖。",[274,4507,4508,4509,4512],{},"延迟为",[362,4510,4511],{"code":4511},"O(log N)","（对于多级分层 CLA）。",[274,4514,4515,4587,4588,4770],{},[1719,4516,4518,4537],{"className":4517},[2629],[1719,4519,4521],{"className":4520},[2633],[2635,4522,4523],{"xmlns":2637},[2639,4524,4525,4534],{},[2642,4526,4527],{},[3949,4528,4529,4532],{},[3932,4530,4531],{},"G",[3932,4533,3958],{},[2649,4535,4536],{"encoding":2651},"G_i",[1719,4538,4540],{"className":4539,"ariaHidden":2657},[2656],[1719,4541,4543,4546],{"className":4542},[2661],[1719,4544],{"className":4545,"style":4038},[2665],[1719,4547,4549,4552],{"className":4548},[3978],[1719,4550,4531],{"className":4551},[3978,3979],[1719,4553,4555],{"className":4554},[4049],[1719,4556,4558,4579],{"className":4557},[4053,4054],[1719,4559,4561,4576],{"className":4560},[4058],[1719,4562,4564],{"className":4563,"style":4063},[4062],[1719,4565,4567,4570],{"style":4566},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[1719,4568],{"className":4569,"style":4071},[4070],[1719,4571,4573],{"className":4572},[4075,4076,4077,4078],[1719,4574,3958],{"className":4575},[3978,3979,4078],[1719,4577,4090],{"className":4578},[4089],[1719,4580,4582],{"className":4581},[4058],[1719,4583,4585],{"className":4584,"style":4097},[4062],[1719,4586],{}," (进位产生位 - Generate): ",[1719,4589,4591,4625],{"className":4590},[2629],[1719,4592,4594],{"className":4593},[2633],[2635,4595,4596],{"xmlns":2637},[2639,4597,4598,4622],{},[2642,4599,4600,4606,4608,4615],{},[3949,4601,4602,4604],{},[3932,4603,4531],{},[3932,4605,3958],{},[2645,4607,1552],{},[3949,4609,4610,4613],{},[3932,4611,4612],{},"a",[3932,4614,3958],{},[3949,4616,4617,4620],{},[3932,4618,4619],{},"b",[3932,4621,3958],{},[2649,4623,4624],{"encoding":2651},"G_i = a_i b_i",[1719,4626,4628,4683],{"className":4627,"ariaHidden":2657},[2656],[1719,4629,4631,4634,4674,4677,4680],{"className":4630},[2661],[1719,4632],{"className":4633,"style":4038},[2665],[1719,4635,4637,4640],{"className":4636},[3978],[1719,4638,4531],{"className":4639},[3978,3979],[1719,4641,4643],{"className":4642},[4049],[1719,4644,4646,4666],{"className":4645},[4053,4054],[1719,4647,4649,4663],{"className":4648},[4058],[1719,4650,4652],{"className":4651,"style":4063},[4062],[1719,4653,4654,4657],{"style":4566},[1719,4655],{"className":4656,"style":4071},[4070],[1719,4658,4660],{"className":4659},[4075,4076,4077,4078],[1719,4661,3958],{"className":4662},[3978,3979,4078],[1719,4664,4090],{"className":4665},[4089],[1719,4667,4669],{"className":4668},[4058],[1719,4670,4672],{"className":4671,"style":4097},[4062],[1719,4673],{},[1719,4675],{"className":4676,"style":3985},[3984],[1719,4678,1552],{"className":4679},[2670],[1719,4681],{"className":4682,"style":3985},[3984],[1719,4684,4686,4690,4730],{"className":4685},[2661],[1719,4687],{"className":4688,"style":4689},[2665],"height:0.8444em;vertical-align:-0.15em;",[1719,4691,4693,4696],{"className":4692},[3978],[1719,4694,4612],{"className":4695},[3978,3979],[1719,4697,4699],{"className":4698},[4049],[1719,4700,4702,4722],{"className":4701},[4053,4054],[1719,4703,4705,4719],{"className":4704},[4058],[1719,4706,4708],{"className":4707,"style":4063},[4062],[1719,4709,4710,4713],{"style":4566},[1719,4711],{"className":4712,"style":4071},[4070],[1719,4714,4716],{"className":4715},[4075,4076,4077,4078],[1719,4717,3958],{"className":4718},[3978,3979,4078],[1719,4720,4090],{"className":4721},[4089],[1719,4723,4725],{"className":4724},[4058],[1719,4726,4728],{"className":4727,"style":4097},[4062],[1719,4729],{},[1719,4731,4733,4736],{"className":4732},[3978],[1719,4734,4619],{"className":4735},[3978,3979],[1719,4737,4739],{"className":4738},[4049],[1719,4740,4742,4762],{"className":4741},[4053,4054],[1719,4743,4745,4759],{"className":4744},[4058],[1719,4746,4748],{"className":4747,"style":4063},[4062],[1719,4749,4750,4753],{"style":4566},[1719,4751],{"className":4752,"style":4071},[4070],[1719,4754,4756],{"className":4755},[4075,4076,4077,4078],[1719,4757,3958],{"className":4758},[3978,3979,4078],[1719,4760,4090],{"className":4761},[4089],[1719,4763,4765],{"className":4764},[4058],[1719,4766,4768],{"className":4767,"style":4097},[4062],[1719,4769],{}," 均为1，就会产生进位",[274,4772,4773,4846,4847,5044],{},[1719,4774,4776,4795],{"className":4775},[2629],[1719,4777,4779],{"className":4778},[2633],[2635,4780,4781],{"xmlns":2637},[2639,4782,4783,4792],{},[2642,4784,4785],{},[3949,4786,4787,4790],{},[3932,4788,4789],{},"P",[3932,4791,3958],{},[2649,4793,4794],{"encoding":2651},"P_i",[1719,4796,4798],{"className":4797,"ariaHidden":2657},[2656],[1719,4799,4801,4804],{"className":4800},[2661],[1719,4802],{"className":4803,"style":4038},[2665],[1719,4805,4807,4811],{"className":4806},[3978],[1719,4808,4789],{"className":4809,"style":4810},[3978,3979],"margin-right:0.1389em;",[1719,4812,4814],{"className":4813},[4049],[1719,4815,4817,4838],{"className":4816},[4053,4054],[1719,4818,4820,4835],{"className":4819},[4058],[1719,4821,4823],{"className":4822,"style":4063},[4062],[1719,4824,4826,4829],{"style":4825},"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;",[1719,4827],{"className":4828,"style":4071},[4070],[1719,4830,4832],{"className":4831},[4075,4076,4077,4078],[1719,4833,3958],{"className":4834},[3978,3979,4078],[1719,4836,4090],{"className":4837},[4089],[1719,4839,4841],{"className":4840},[4058],[1719,4842,4844],{"className":4843,"style":4097},[4062],[1719,4845],{}," (进位传播位 - Propagate): ",[1719,4848,4850,4884],{"className":4849},[2629],[1719,4851,4853],{"className":4852},[2633],[2635,4854,4855],{"xmlns":2637},[2639,4856,4857,4881],{},[2642,4858,4859,4865,4867,4873,4875],{},[3949,4860,4861,4863],{},[3932,4862,4789],{},[3932,4864,3958],{},[2645,4866,1552],{},[3949,4868,4869,4871],{},[3932,4870,4612],{},[3932,4872,3958],{},[2645,4874,1966],{},[3949,4876,4877,4879],{},[3932,4878,4619],{},[3932,4880,3958],{},[2649,4882,4883],{"encoding":2651},"P_i = a_i + b_i",[1719,4885,4887,4942,4998],{"className":4886,"ariaHidden":2657},[2656],[1719,4888,4890,4893,4933,4936,4939],{"className":4889},[2661],[1719,4891],{"className":4892,"style":4038},[2665],[1719,4894,4896,4899],{"className":4895},[3978],[1719,4897,4789],{"className":4898,"style":4810},[3978,3979],[1719,4900,4902],{"className":4901},[4049],[1719,4903,4905,4925],{"className":4904},[4053,4054],[1719,4906,4908,4922],{"className":4907},[4058],[1719,4909,4911],{"className":4910,"style":4063},[4062],[1719,4912,4913,4916],{"style":4825},[1719,4914],{"className":4915,"style":4071},[4070],[1719,4917,4919],{"className":4918},[4075,4076,4077,4078],[1719,4920,3958],{"className":4921},[3978,3979,4078],[1719,4923,4090],{"className":4924},[4089],[1719,4926,4928],{"className":4927},[4058],[1719,4929,4931],{"className":4930,"style":4097},[4062],[1719,4932],{},[1719,4934],{"className":4935,"style":3985},[3984],[1719,4937,1552],{"className":4938},[2670],[1719,4940],{"className":4941,"style":3985},[3984],[1719,4943,4945,4949,4989,4992,4995],{"className":4944},[2661],[1719,4946],{"className":4947,"style":4948},[2665],"height:0.7333em;vertical-align:-0.15em;",[1719,4950,4952,4955],{"className":4951},[3978],[1719,4953,4612],{"className":4954},[3978,3979],[1719,4956,4958],{"className":4957},[4049],[1719,4959,4961,4981],{"className":4960},[4053,4054],[1719,4962,4964,4978],{"className":4963},[4058],[1719,4965,4967],{"className":4966,"style":4063},[4062],[1719,4968,4969,4972],{"style":4566},[1719,4970],{"className":4971,"style":4071},[4070],[1719,4973,4975],{"className":4974},[4075,4076,4077,4078],[1719,4976,3958],{"className":4977},[3978,3979,4078],[1719,4979,4090],{"className":4980},[4089],[1719,4982,4984],{"className":4983},[4058],[1719,4985,4987],{"className":4986,"style":4097},[4062],[1719,4988],{},[1719,4990],{"className":4991,"style":4005},[3984],[1719,4993,1966],{"className":4994},[4009],[1719,4996],{"className":4997,"style":4005},[3984],[1719,4999,5001,5004],{"className":5000},[2661],[1719,5002],{"className":5003,"style":4689},[2665],[1719,5005,5007,5010],{"className":5006},[3978],[1719,5008,4619],{"className":5009},[3978,3979],[1719,5011,5013],{"className":5012},[4049],[1719,5014,5016,5036],{"className":5015},[4053,4054],[1719,5017,5019,5033],{"className":5018},[4058],[1719,5020,5022],{"className":5021,"style":4063},[4062],[1719,5023,5024,5027],{"style":4566},[1719,5025],{"className":5026,"style":4071},[4070],[1719,5028,5030],{"className":5029},[4075,4076,4077,4078],[1719,5031,3958],{"className":5032},[3978,3979,4078],[1719,5034,4090],{"className":5035},[4089],[1719,5037,5039],{"className":5038},[4058],[1719,5040,5042],{"className":5041,"style":4097},[4062],[1719,5043],{}," 只要有一个为1，如果有一个cin是1，那么就会“传播”进位",[274,5046,5047,5048,5309],{},"于是，可以得到",[1719,5049,5051,5099],{"className":5050},[2629],[1719,5052,5054],{"className":5053},[2633],[2635,5055,5056],{"xmlns":2637},[2639,5057,5058,5096],{},[2642,5059,5060,5074,5076,5082,5084,5090],{},[3949,5061,5062,5065],{},[3932,5063,5064],{},"c",[2642,5066,5067,5069,5071],{},[3932,5068,3958],{},[2645,5070,1966],{},[5072,5073,655],"mn",{},[2645,5075,1552],{},[3949,5077,5078,5080],{},[3932,5079,4531],{},[3932,5081,3958],{},[2645,5083,1966],{},[3949,5085,5086,5088],{},[3932,5087,4789],{},[3932,5089,3958],{},[3949,5091,5092,5094],{},[3932,5093,5064],{},[3932,5095,3958],{},[2649,5097,5098],{"encoding":2651},"c_{i+1} = G_i + P_i c_i",[1719,5100,5102,5168,5223],{"className":5101,"ariaHidden":2657},[2656],[1719,5103,5105,5109,5159,5162,5165],{"className":5104},[2661],[1719,5106],{"className":5107,"style":5108},[2665],"height:0.6389em;vertical-align:-0.2083em;",[1719,5110,5112,5115],{"className":5111},[3978],[1719,5113,5064],{"className":5114},[3978,3979],[1719,5116,5118],{"className":5117},[4049],[1719,5119,5121,5150],{"className":5120},[4053,4054],[1719,5122,5124,5147],{"className":5123},[4058],[1719,5125,5127],{"className":5126,"style":4063},[4062],[1719,5128,5129,5132],{"style":4566},[1719,5130],{"className":5131,"style":4071},[4070],[1719,5133,5135],{"className":5134},[4075,4076,4077,4078],[1719,5136,5138,5141,5144],{"className":5137},[3978,4078],[1719,5139,3958],{"className":5140},[3978,3979,4078],[1719,5142,1966],{"className":5143},[4009,4078],[1719,5145,655],{"className":5146},[3978,4078],[1719,5148,4090],{"className":5149},[4089],[1719,5151,5153],{"className":5152},[4058],[1719,5154,5157],{"className":5155,"style":5156},[4062],"height:0.2083em;",[1719,5158],{},[1719,5160],{"className":5161,"style":3985},[3984],[1719,5163,1552],{"className":5164},[2670],[1719,5166],{"className":5167,"style":3985},[3984],[1719,5169,5171,5174,5214,5217,5220],{"className":5170},[2661],[1719,5172],{"className":5173,"style":4038},[2665],[1719,5175,5177,5180],{"className":5176},[3978],[1719,5178,4531],{"className":5179},[3978,3979],[1719,5181,5183],{"className":5182},[4049],[1719,5184,5186,5206],{"className":5185},[4053,4054],[1719,5187,5189,5203],{"className":5188},[4058],[1719,5190,5192],{"className":5191,"style":4063},[4062],[1719,5193,5194,5197],{"style":4566},[1719,5195],{"className":5196,"style":4071},[4070],[1719,5198,5200],{"className":5199},[4075,4076,4077,4078],[1719,5201,3958],{"className":5202},[3978,3979,4078],[1719,5204,4090],{"className":5205},[4089],[1719,5207,5209],{"className":5208},[4058],[1719,5210,5212],{"className":5211,"style":4097},[4062],[1719,5213],{},[1719,5215],{"className":5216,"style":4005},[3984],[1719,5218,1966],{"className":5219},[4009],[1719,5221],{"className":5222,"style":4005},[3984],[1719,5224,5226,5229,5269],{"className":5225},[2661],[1719,5227],{"className":5228,"style":4038},[2665],[1719,5230,5232,5235],{"className":5231},[3978],[1719,5233,4789],{"className":5234,"style":4810},[3978,3979],[1719,5236,5238],{"className":5237},[4049],[1719,5239,5241,5261],{"className":5240},[4053,4054],[1719,5242,5244,5258],{"className":5243},[4058],[1719,5245,5247],{"className":5246,"style":4063},[4062],[1719,5248,5249,5252],{"style":4825},[1719,5250],{"className":5251,"style":4071},[4070],[1719,5253,5255],{"className":5254},[4075,4076,4077,4078],[1719,5256,3958],{"className":5257},[3978,3979,4078],[1719,5259,4090],{"className":5260},[4089],[1719,5262,5264],{"className":5263},[4058],[1719,5265,5267],{"className":5266,"style":4097},[4062],[1719,5268],{},[1719,5270,5272,5275],{"className":5271},[3978],[1719,5273,5064],{"className":5274},[3978,3979],[1719,5276,5278],{"className":5277},[4049],[1719,5279,5281,5301],{"className":5280},[4053,4054],[1719,5282,5284,5298],{"className":5283},[4058],[1719,5285,5287],{"className":5286,"style":4063},[4062],[1719,5288,5289,5292],{"style":4566},[1719,5290],{"className":5291,"style":4071},[4070],[1719,5293,5295],{"className":5294},[4075,4076,4077,4078],[1719,5296,3958],{"className":5297},[3978,3979,4078],[1719,5299,4090],{"className":5300},[4089],[1719,5302,5304],{"className":5303},[4058],[1719,5305,5307],{"className":5306,"style":4097},[4062],[1719,5308],{},"，这样我们就有一个递推公式了",[431,5311,5312],{"style":966},[456,5313,5314],{},[437,5315,972,5316,972,5324],{"style":971},[461,5317,5319,972],{"style":5318},"width: 47.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,5320,5321],{},[327,5322],{"alt":327,"src":5323},"\u002Fimg\u002FHDL\u002FFeiQilai1-44.png",[461,5325,5327,972],{"style":5326},"width: 52.0%; text-align: center; border: none; padding: 0.3em; margin: 0;",[274,5328,5329],{},[327,5330],{"alt":327,"src":5331},"\u002Fimg\u002FHDL\u002FFeiQilai1-45.png",[274,5333,5334],{},[327,5335],{"alt":327,"src":5336},"\u002Fimg\u002FHDL\u002FFeiQilai1-46.png",[274,5338,5339],{},"于是可以得出CLA的工作流程",[724,5341,5342,5359,5382],{},[359,5343,5344,5347],{},[339,5345,5346],{},"Stage 1 (并行)：",[356,5348,5349],{},[359,5350,1653,5351,5354,5355,5358],{},[339,5352,5353],{},"一瞬间","，所有位的 G_i (用 AND 门) 和 P_i (用 OR 门) 都可以被",[339,5356,5357],{},"同时","计算出来，因为它们只依赖 a_i 和 b_i。",[359,5360,5361,5364],{},[339,5362,5363],{},"Stage 2 (并行 - 核心)：",[356,5365,5366,5373,5379],{},[359,5367,5368,5369,5372],{},"一个专门的、复杂的“",[339,5370,5371],{},"先行进位部件 (Lookahead Carry Unit)","”接收所有的 G_i, P_i 和 c_0。",[359,5374,5375,5376,5378],{},"它使用上面那些“扩展后”的并行公式，",[339,5377,5357],{},"计算出 c_1, c_2, c_3, ... c_n。",[359,5380,5381],{},"这就是 PPT 说的“扩展的公式不依赖于中间的进位” 和“进位链逻辑扁平化”。",[359,5383,5384,5387],{},[339,5385,5386],{},"Stage 3 (并行)：",[356,5388,5389,5392],{},[359,5390,5391],{},"现在我们有了所有的 c_i (来自 Stage 2) 和 P_i, G_i (来自 Stage 1)。",[359,5393,5394,5395,5397,5398],{},"我们可以",[339,5396,5357],{},"计算出所有位的“和” s_i。\n",[327,5399],{"alt":327,"src":5400},"\u002Fimg\u002FHDL\u002FFeiQilai1-47.png",[960,5402,5404],{"id":5403},"进位跳跃加法器",[339,5405,5403],{},[274,5407,5408],{},"分块，若都是（01）组合，则进位跳过这一块",[270,5410,5411,5595],{"type":272},[274,5412,5413,5414,5590,5591,5594],{},"如果某一位 i，它的输入 ",[1719,5415,5417,5445],{"className":5416},[2629],[1719,5418,5420],{"className":5419},[2633],[2635,5421,5422],{"xmlns":2637},[2639,5423,5424,5442],{},[2642,5425,5426,5432,5436],{},[3949,5427,5428,5430],{},[3932,5429,4612],{},[3932,5431,3958],{},[2645,5433,5435],{"mathvariant":5434},"normal","≠",[3949,5437,5438,5440],{},[3932,5439,4619],{},[3932,5441,3958],{},[2649,5443,5444],{"encoding":2651},"a_i \\neq b_i",[1719,5446,5448,5544],{"className":5447,"ariaHidden":2657},[2656],[1719,5449,5451,5455,5495,5498,5541],{"className":5450},[2661],[1719,5452],{"className":5453,"style":5454},[2665],"height:0.8889em;vertical-align:-0.1944em;",[1719,5456,5458,5461],{"className":5457},[3978],[1719,5459,4612],{"className":5460},[3978,3979],[1719,5462,5464],{"className":5463},[4049],[1719,5465,5467,5487],{"className":5466},[4053,4054],[1719,5468,5470,5484],{"className":5469},[4058],[1719,5471,5473],{"className":5472,"style":4063},[4062],[1719,5474,5475,5478],{"style":4566},[1719,5476],{"className":5477,"style":4071},[4070],[1719,5479,5481],{"className":5480},[4075,4076,4077,4078],[1719,5482,3958],{"className":5483},[3978,3979,4078],[1719,5485,4090],{"className":5486},[4089],[1719,5488,5490],{"className":5489},[4058],[1719,5491,5493],{"className":5492,"style":4097},[4062],[1719,5494],{},[1719,5496],{"className":5497,"style":3985},[3984],[1719,5499,5501,5534,5538],{"className":5500},[2670],[1719,5502,5504],{"className":5503},[2670],[1719,5505,5508],{"className":5506},[3978,5507],"vbox",[1719,5509,5512],{"className":5510},[5511],"thinbox",[1719,5513,5516,5519,5530],{"className":5514},[5515],"rlap",[1719,5517],{"className":5518,"style":5454},[2665],[1719,5520,5523],{"className":5521},[5522],"inner",[1719,5524,5526],{"className":5525},[3978],[1719,5527,5529],{"className":5528},[2670],"",[1719,5531],{"className":5532},[5533],"fix",[1719,5535],{"className":5536},[3984,5537],"nobreak",[1719,5539,1552],{"className":5540},[2670],[1719,5542],{"className":5543,"style":3985},[3984],[1719,5545,5547,5550],{"className":5546},[2661],[1719,5548],{"className":5549,"style":4689},[2665],[1719,5551,5553,5556],{"className":5552},[3978],[1719,5554,4619],{"className":5555},[3978,3979],[1719,5557,5559],{"className":5558},[4049],[1719,5560,5562,5582],{"className":5561},[4053,4054],[1719,5563,5565,5579],{"className":5564},[4058],[1719,5566,5568],{"className":5567,"style":4063},[4062],[1719,5569,5570,5573],{"style":4566},[1719,5571],{"className":5572,"style":4071},[4070],[1719,5574,5576],{"className":5575},[4075,4076,4077,4078],[1719,5577,3958],{"className":5578},[3978,3979,4078],[1719,5580,4090],{"className":5581},[4089],[1719,5583,5585],{"className":5584},[4058],[1719,5586,5588],{"className":5587,"style":4097},[4062],[1719,5589],{},"（即 a_i=1, b_i=0 或 a_i=0, b_i=1），那么这一位的输出进位 c_{i+1} 就",[339,5592,5593],{},"完全等于","它的输入进位 c_i。",[274,5596,5597,5753],{},[1719,5598,5600,5630],{"className":5599},[2629],[1719,5601,5603],{"className":5602},[2633],[2635,5604,5605],{"xmlns":2637},[2639,5606,5607,5627],{},[2642,5608,5609,5615,5617,5623,5625],{},[3949,5610,5611,5613],{},[3932,5612,4612],{},[3932,5614,3958],{},[2645,5616,3942],{},[3949,5618,5619,5621],{},[3932,5620,4619],{},[3932,5622,3958],{},[2645,5624,1552],{},[5072,5626,655],{},[2649,5628,5629],{"encoding":2651},"a_i \\oplus b_i = 1",[1719,5631,5633,5688,5743],{"className":5632,"ariaHidden":2657},[2656],[1719,5634,5636,5639,5679,5682,5685],{"className":5635},[2661],[1719,5637],{"className":5638,"style":4948},[2665],[1719,5640,5642,5645],{"className":5641},[3978],[1719,5643,4612],{"className":5644},[3978,3979],[1719,5646,5648],{"className":5647},[4049],[1719,5649,5651,5671],{"className":5650},[4053,4054],[1719,5652,5654,5668],{"className":5653},[4058],[1719,5655,5657],{"className":5656,"style":4063},[4062],[1719,5658,5659,5662],{"style":4566},[1719,5660],{"className":5661,"style":4071},[4070],[1719,5663,5665],{"className":5664},[4075,4076,4077,4078],[1719,5666,3958],{"className":5667},[3978,3979,4078],[1719,5669,4090],{"className":5670},[4089],[1719,5672,5674],{"className":5673},[4058],[1719,5675,5677],{"className":5676,"style":4097},[4062],[1719,5678],{},[1719,5680],{"className":5681,"style":4005},[3984],[1719,5683,3942],{"className":5684},[4009],[1719,5686],{"className":5687,"style":4005},[3984],[1719,5689,5691,5694,5734,5737,5740],{"className":5690},[2661],[1719,5692],{"className":5693,"style":4689},[2665],[1719,5695,5697,5700],{"className":5696},[3978],[1719,5698,4619],{"className":5699},[3978,3979],[1719,5701,5703],{"className":5702},[4049],[1719,5704,5706,5726],{"className":5705},[4053,4054],[1719,5707,5709,5723],{"className":5708},[4058],[1719,5710,5712],{"className":5711,"style":4063},[4062],[1719,5713,5714,5717],{"style":4566},[1719,5715],{"className":5716,"style":4071},[4070],[1719,5718,5720],{"className":5719},[4075,4076,4077,4078],[1719,5721,3958],{"className":5722},[3978,3979,4078],[1719,5724,4090],{"className":5725},[4089],[1719,5727,5729],{"className":5728},[4058],[1719,5730,5732],{"className":5731,"style":4097},[4062],[1719,5733],{},[1719,5735],{"className":5736,"style":3985},[3984],[1719,5738,1552],{"className":5739},[2670],[1719,5741],{"className":5742,"style":3985},[3984],[1719,5744,5746,5750],{"className":5745},[2661],[1719,5747],{"className":5748,"style":5749},[2665],"height:0.6444em;",[1719,5751,655],{"className":5752},[3978]," (这是一个“传播” Propagate 条件)",[356,5755,5756,5763],{},[359,5757,5758,5759,5762],{},"在特定条件下, 让进位 ",[289,5760,5761],{},"“跳过” (Skip\u002FBypass)"," 某些加法器块。",[359,5764,5765,5766],{},"对 RCA 的一种低成本改进, 性能优于 RCA, 但逊于 CLA。\n",[327,5767],{"alt":327,"src":5768},"\u002Fimg\u002FHDL\u002FFeiQilai1-48.png",[274,5770,5771],{},[339,5772,5773],{},"检测什么",[356,5775,5776,6120,6406,6875,7331,7517,7815,7829,7906,8123],{},[359,5777,5778,5781,5782,5949,5950,5781,5953,6119],{},[339,5779,5780],{},"跳跃条件："," ( ",[1719,5783,5785,5811],{"className":5784},[2629],[1719,5786,5788],{"className":5787},[2633],[2635,5789,5790],{"xmlns":2637},[2639,5791,5792,5808],{},[2642,5793,5794,5800,5802],{},[3949,5795,5796,5798],{},[3932,5797,4612],{},[5072,5799,651],{},[2645,5801,5435],{"mathvariant":5434},[3949,5803,5804,5806],{},[3932,5805,4619],{},[5072,5807,651],{},[2649,5809,5810],{"encoding":2651},"a_0 \\neq b_0",[1719,5812,5814,5903],{"className":5813,"ariaHidden":2657},[2656],[1719,5815,5817,5820,5861,5864,5900],{"className":5816},[2661],[1719,5818],{"className":5819,"style":5454},[2665],[1719,5821,5823,5826],{"className":5822},[3978],[1719,5824,4612],{"className":5825},[3978,3979],[1719,5827,5829],{"className":5828},[4049],[1719,5830,5832,5853],{"className":5831},[4053,4054],[1719,5833,5835,5850],{"className":5834},[4058],[1719,5836,5839],{"className":5837,"style":5838},[4062],"height:0.3011em;",[1719,5840,5841,5844],{"style":4566},[1719,5842],{"className":5843,"style":4071},[4070],[1719,5845,5847],{"className":5846},[4075,4076,4077,4078],[1719,5848,651],{"className":5849},[3978,4078],[1719,5851,4090],{"className":5852},[4089],[1719,5854,5856],{"className":5855},[4058],[1719,5857,5859],{"className":5858,"style":4097},[4062],[1719,5860],{},[1719,5862],{"className":5863,"style":3985},[3984],[1719,5865,5867,5894,5897],{"className":5866},[2670],[1719,5868,5870],{"className":5869},[2670],[1719,5871,5873],{"className":5872},[3978,5507],[1719,5874,5876],{"className":5875},[5511],[1719,5877,5879,5882,5891],{"className":5878},[5515],[1719,5880],{"className":5881,"style":5454},[2665],[1719,5883,5885],{"className":5884},[5522],[1719,5886,5888],{"className":5887},[3978],[1719,5889,5529],{"className":5890},[2670],[1719,5892],{"className":5893},[5533],[1719,5895],{"className":5896},[3984,5537],[1719,5898,1552],{"className":5899},[2670],[1719,5901],{"className":5902,"style":3985},[3984],[1719,5904,5906,5909],{"className":5905},[2661],[1719,5907],{"className":5908,"style":4689},[2665],[1719,5910,5912,5915],{"className":5911},[3978],[1719,5913,4619],{"className":5914},[3978,3979],[1719,5916,5918],{"className":5917},[4049],[1719,5919,5921,5941],{"className":5920},[4053,4054],[1719,5922,5924,5938],{"className":5923},[4058],[1719,5925,5927],{"className":5926,"style":5838},[4062],[1719,5928,5929,5932],{"style":4566},[1719,5930],{"className":5931,"style":4071},[4070],[1719,5933,5935],{"className":5934},[4075,4076,4077,4078],[1719,5936,651],{"className":5937},[3978,4078],[1719,5939,4090],{"className":5940},[4089],[1719,5942,5944],{"className":5943},[4058],[1719,5945,5947],{"className":5946,"style":4097},[4062],[1719,5948],{}," ) ",[339,5951,5952],{},"AND",[1719,5954,5956,5982],{"className":5955},[2629],[1719,5957,5959],{"className":5958},[2633],[2635,5960,5961],{"xmlns":2637},[2639,5962,5963,5979],{},[2642,5964,5965,5971,5973],{},[3949,5966,5967,5969],{},[3932,5968,4612],{},[5072,5970,655],{},[2645,5972,5435],{"mathvariant":5434},[3949,5974,5975,5977],{},[3932,5976,4619],{},[5072,5978,655],{},[2649,5980,5981],{"encoding":2651},"a_1 \\neq b_1",[1719,5983,5985,6073],{"className":5984,"ariaHidden":2657},[2656],[1719,5986,5988,5991,6031,6034,6070],{"className":5987},[2661],[1719,5989],{"className":5990,"style":5454},[2665],[1719,5992,5994,5997],{"className":5993},[3978],[1719,5995,4612],{"className":5996},[3978,3979],[1719,5998,6000],{"className":5999},[4049],[1719,6001,6003,6023],{"className":6002},[4053,4054],[1719,6004,6006,6020],{"className":6005},[4058],[1719,6007,6009],{"className":6008,"style":5838},[4062],[1719,6010,6011,6014],{"style":4566},[1719,6012],{"className":6013,"style":4071},[4070],[1719,6015,6017],{"className":6016},[4075,4076,4077,4078],[1719,6018,655],{"className":6019},[3978,4078],[1719,6021,4090],{"className":6022},[4089],[1719,6024,6026],{"className":6025},[4058],[1719,6027,6029],{"className":6028,"style":4097},[4062],[1719,6030],{},[1719,6032],{"className":6033,"style":3985},[3984],[1719,6035,6037,6064,6067],{"className":6036},[2670],[1719,6038,6040],{"className":6039},[2670],[1719,6041,6043],{"className":6042},[3978,5507],[1719,6044,6046],{"className":6045},[5511],[1719,6047,6049,6052,6061],{"className":6048},[5515],[1719,6050],{"className":6051,"style":5454},[2665],[1719,6053,6055],{"className":6054},[5522],[1719,6056,6058],{"className":6057},[3978],[1719,6059,5529],{"className":6060},[2670],[1719,6062],{"className":6063},[5533],[1719,6065],{"className":6066},[3984,5537],[1719,6068,1552],{"className":6069},[2670],[1719,6071],{"className":6072,"style":3985},[3984],[1719,6074,6076,6079],{"className":6075},[2661],[1719,6077],{"className":6078,"style":4689},[2665],[1719,6080,6082,6085],{"className":6081},[3978],[1719,6083,4619],{"className":6084},[3978,3979],[1719,6086,6088],{"className":6087},[4049],[1719,6089,6091,6111],{"className":6090},[4053,4054],[1719,6092,6094,6108],{"className":6093},[4058],[1719,6095,6097],{"className":6096,"style":5838},[4062],[1719,6098,6099,6102],{"style":4566},[1719,6100],{"className":6101,"style":4071},[4070],[1719,6103,6105],{"className":6104},[4075,4076,4077,4078],[1719,6106,655],{"className":6107},[3978,4078],[1719,6109,4090],{"className":6110},[4089],[1719,6112,6114],{"className":6113},[4058],[1719,6115,6117],{"className":6116,"style":4097},[4062],[1719,6118],{}," )。",[359,6121,6122,5781,6125,5949,6259,5781,6262,6395,6396,399,6399,399,6403],{},[339,6123,6124],{},"不跳跃条件：",[1719,6126,6128,6154],{"className":6127},[2629],[1719,6129,6131],{"className":6130},[2633],[2635,6132,6133],{"xmlns":2637},[2639,6134,6135,6151],{},[2642,6136,6137,6143,6145],{},[3949,6138,6139,6141],{},[3932,6140,4612],{},[5072,6142,651],{},[2645,6144,1552],{},[3949,6146,6147,6149],{},[3932,6148,4619],{},[5072,6150,651],{},[2649,6152,6153],{"encoding":2651},"a_0 = b_0",[1719,6155,6157,6213],{"className":6156,"ariaHidden":2657},[2656],[1719,6158,6160,6164,6204,6207,6210],{"className":6159},[2661],[1719,6161],{"className":6162,"style":6163},[2665],"height:0.5806em;vertical-align:-0.15em;",[1719,6165,6167,6170],{"className":6166},[3978],[1719,6168,4612],{"className":6169},[3978,3979],[1719,6171,6173],{"className":6172},[4049],[1719,6174,6176,6196],{"className":6175},[4053,4054],[1719,6177,6179,6193],{"className":6178},[4058],[1719,6180,6182],{"className":6181,"style":5838},[4062],[1719,6183,6184,6187],{"style":4566},[1719,6185],{"className":6186,"style":4071},[4070],[1719,6188,6190],{"className":6189},[4075,4076,4077,4078],[1719,6191,651],{"className":6192},[3978,4078],[1719,6194,4090],{"className":6195},[4089],[1719,6197,6199],{"className":6198},[4058],[1719,6200,6202],{"className":6201,"style":4097},[4062],[1719,6203],{},[1719,6205],{"className":6206,"style":3985},[3984],[1719,6208,1552],{"className":6209},[2670],[1719,6211],{"className":6212,"style":3985},[3984],[1719,6214,6216,6219],{"className":6215},[2661],[1719,6217],{"className":6218,"style":4689},[2665],[1719,6220,6222,6225],{"className":6221},[3978],[1719,6223,4619],{"className":6224},[3978,3979],[1719,6226,6228],{"className":6227},[4049],[1719,6229,6231,6251],{"className":6230},[4053,4054],[1719,6232,6234,6248],{"className":6233},[4058],[1719,6235,6237],{"className":6236,"style":5838},[4062],[1719,6238,6239,6242],{"style":4566},[1719,6240],{"className":6241,"style":4071},[4070],[1719,6243,6245],{"className":6244},[4075,4076,4077,4078],[1719,6246,651],{"className":6247},[3978,4078],[1719,6249,4090],{"className":6250},[4089],[1719,6252,6254],{"className":6253},[4058],[1719,6255,6257],{"className":6256,"style":4097},[4062],[1719,6258],{},[339,6260,6261],{},"OR",[1719,6263,6265,6291],{"className":6264},[2629],[1719,6266,6268],{"className":6267},[2633],[2635,6269,6270],{"xmlns":2637},[2639,6271,6272,6288],{},[2642,6273,6274,6280,6282],{},[3949,6275,6276,6278],{},[3932,6277,4612],{},[5072,6279,655],{},[2645,6281,1552],{},[3949,6283,6284,6286],{},[3932,6285,4619],{},[5072,6287,655],{},[2649,6289,6290],{"encoding":2651},"a_1 = b_1",[1719,6292,6294,6349],{"className":6293,"ariaHidden":2657},[2656],[1719,6295,6297,6300,6340,6343,6346],{"className":6296},[2661],[1719,6298],{"className":6299,"style":6163},[2665],[1719,6301,6303,6306],{"className":6302},[3978],[1719,6304,4612],{"className":6305},[3978,3979],[1719,6307,6309],{"className":6308},[4049],[1719,6310,6312,6332],{"className":6311},[4053,4054],[1719,6313,6315,6329],{"className":6314},[4058],[1719,6316,6318],{"className":6317,"style":5838},[4062],[1719,6319,6320,6323],{"style":4566},[1719,6321],{"className":6322,"style":4071},[4070],[1719,6324,6326],{"className":6325},[4075,4076,4077,4078],[1719,6327,655],{"className":6328},[3978,4078],[1719,6330,4090],{"className":6331},[4089],[1719,6333,6335],{"className":6334},[4058],[1719,6336,6338],{"className":6337,"style":4097},[4062],[1719,6339],{},[1719,6341],{"className":6342,"style":3985},[3984],[1719,6344,1552],{"className":6345},[2670],[1719,6347],{"className":6348,"style":3985},[3984],[1719,6350,6352,6355],{"className":6351},[2661],[1719,6353],{"className":6354,"style":4689},[2665],[1719,6356,6358,6361],{"className":6357},[3978],[1719,6359,4619],{"className":6360},[3978,3979],[1719,6362,6364],{"className":6363},[4049],[1719,6365,6367,6387],{"className":6366},[4053,4054],[1719,6368,6370,6384],{"className":6369},[4058],[1719,6371,6373],{"className":6372,"style":5838},[4062],[1719,6374,6375,6378],{"style":4566},[1719,6376],{"className":6377,"style":4071},[4070],[1719,6379,6381],{"className":6380},[4075,4076,4077,4078],[1719,6382,655],{"className":6383},[3978,4078],[1719,6385,4090],{"className":6386},[4089],[1719,6388,6390],{"className":6389},[4058],[1719,6391,6393],{"className":6392,"style":4097},[4062],[1719,6394],{}," )。 （即，只要有任何一位不满足传播条件，就必须老老实实地计算内部进位）。\n",[339,6397,6398],{},"分析",[339,6400,6401],{},[362,6402,1116],{"code":1116},[339,6404,6405],{},"信号（选择信号）：",[359,6407,6408,6409,6633,6634,6766,6767,564],{},"第一个 XNOR 门计算 ",[1719,6410,6412,6457],{"className":6411},[2629],[1719,6413,6415],{"className":6414},[2633],[2635,6416,6417],{"xmlns":2637},[2639,6418,6419,6454],{},[2642,6420,6421,6432,6434,6436,6442,6446,6452],{},[6422,6423,6424,6426,6428],"msubsup",{},[3932,6425,4789],{},[5072,6427,651],{},[2645,6429,6431],{"mathvariant":5434,"lspace":6430,"rspace":6430},"0em","′",[2645,6433,1552],{},[2645,6435,4136],{"stretchy":1128},[3949,6437,6438,6440],{},[3932,6439,4612],{},[5072,6441,651],{},[6443,6444,6445],"mtext",{}," XNOR ",[3949,6447,6448,6450],{},[3932,6449,4619],{},[5072,6451,651],{},[2645,6453,1569],{"stretchy":1128},[2649,6455,6456],{"encoding":2651},"P_0' = (a_0 \\text{ XNOR } b_0)",[1719,6458,6460,6534],{"className":6459,"ariaHidden":2657},[2656],[1719,6461,6463,6467,6525,6528,6531],{"className":6462},[2661],[1719,6464],{"className":6465,"style":6466},[2665],"height:1em;vertical-align:-0.2481em;",[1719,6468,6470,6473],{"className":6469},[3978],[1719,6471,4789],{"className":6472,"style":4810},[3978,3979],[1719,6474,6476],{"className":6475},[4049],[1719,6477,6479,6516],{"className":6478},[4053,4054],[1719,6480,6482,6513],{"className":6481},[4058],[1719,6483,6486,6498],{"className":6484,"style":6485},[4062],"height:0.7519em;",[1719,6487,6489,6492],{"style":6488},"top:-2.4519em;margin-left:-0.1389em;margin-right:0.05em;",[1719,6490],{"className":6491,"style":4071},[4070],[1719,6493,6495],{"className":6494},[4075,4076,4077,4078],[1719,6496,651],{"className":6497},[3978,4078],[1719,6499,6501,6504],{"style":6500},"top:-3.063em;margin-right:0.05em;",[1719,6502],{"className":6503,"style":4071},[4070],[1719,6505,6507],{"className":6506},[4075,4076,4077,4078],[1719,6508,6510],{"className":6509},[3978,4078],[1719,6511,6431],{"className":6512},[3978,4078],[1719,6514,4090],{"className":6515},[4089],[1719,6517,6519],{"className":6518},[4058],[1719,6520,6523],{"className":6521,"style":6522},[4062],"height:0.2481em;",[1719,6524],{},[1719,6526],{"className":6527,"style":3985},[3984],[1719,6529,1552],{"className":6530},[2670],[1719,6532],{"className":6533,"style":3985},[3984],[1719,6535,6537,6540,6543,6583,6590,6630],{"className":6536},[2661],[1719,6538],{"className":6539,"style":4263},[2665],[1719,6541,4136],{"className":6542},[4267],[1719,6544,6546,6549],{"className":6545},[3978],[1719,6547,4612],{"className":6548},[3978,3979],[1719,6550,6552],{"className":6551},[4049],[1719,6553,6555,6575],{"className":6554},[4053,4054],[1719,6556,6558,6572],{"className":6557},[4058],[1719,6559,6561],{"className":6560,"style":5838},[4062],[1719,6562,6563,6566],{"style":4566},[1719,6564],{"className":6565,"style":4071},[4070],[1719,6567,6569],{"className":6568},[4075,4076,4077,4078],[1719,6570,651],{"className":6571},[3978,4078],[1719,6573,4090],{"className":6574},[4089],[1719,6576,6578],{"className":6577},[4058],[1719,6579,6581],{"className":6580,"style":4097},[4062],[1719,6582],{},[1719,6584,6587],{"className":6585},[3978,6586],"text",[1719,6588,6445],{"className":6589},[3978],[1719,6591,6593,6596],{"className":6592},[3978],[1719,6594,4619],{"className":6595},[3978,3979],[1719,6597,6599],{"className":6598},[4049],[1719,6600,6602,6622],{"className":6601},[4053,4054],[1719,6603,6605,6619],{"className":6604},[4058],[1719,6606,6608],{"className":6607,"style":5838},[4062],[1719,6609,6610,6613],{"style":4566},[1719,6611],{"className":6612,"style":4071},[4070],[1719,6614,6616],{"className":6615},[4075,4076,4077,4078],[1719,6617,651],{"className":6618},[3978,4078],[1719,6620,4090],{"className":6621},[4089],[1719,6623,6625],{"className":6624},[4058],[1719,6626,6628],{"className":6627,"style":4097},[4062],[1719,6629],{},[1719,6631,1569],{"className":6632},[4292],"。当 ",[1719,6635,6637,6662],{"className":6636},[2629],[1719,6638,6640],{"className":6639},[2633],[2635,6641,6642],{"xmlns":2637},[2639,6643,6644,6660],{},[2642,6645,6646,6652,6654],{},[3949,6647,6648,6650],{},[3932,6649,4612],{},[5072,6651,651],{},[2645,6653,1552],{},[3949,6655,6656,6658],{},[3932,6657,4619],{},[5072,6659,651],{},[2649,6661,6153],{"encoding":2651},[1719,6663,6665,6720],{"className":6664,"ariaHidden":2657},[2656],[1719,6666,6668,6671,6711,6714,6717],{"className":6667},[2661],[1719,6669],{"className":6670,"style":6163},[2665],[1719,6672,6674,6677],{"className":6673},[3978],[1719,6675,4612],{"className":6676},[3978,3979],[1719,6678,6680],{"className":6679},[4049],[1719,6681,6683,6703],{"className":6682},[4053,4054],[1719,6684,6686,6700],{"className":6685},[4058],[1719,6687,6689],{"className":6688,"style":5838},[4062],[1719,6690,6691,6694],{"style":4566},[1719,6692],{"className":6693,"style":4071},[4070],[1719,6695,6697],{"className":6696},[4075,4076,4077,4078],[1719,6698,651],{"className":6699},[3978,4078],[1719,6701,4090],{"className":6702},[4089],[1719,6704,6706],{"className":6705},[4058],[1719,6707,6709],{"className":6708,"style":4097},[4062],[1719,6710],{},[1719,6712],{"className":6713,"style":3985},[3984],[1719,6715,1552],{"className":6716},[2670],[1719,6718],{"className":6719,"style":3985},[3984],[1719,6721,6723,6726],{"className":6722},[2661],[1719,6724],{"className":6725,"style":4689},[2665],[1719,6727,6729,6732],{"className":6728},[3978],[1719,6730,4619],{"className":6731},[3978,3979],[1719,6733,6735],{"className":6734},[4049],[1719,6736,6738,6758],{"className":6737},[4053,4054],[1719,6739,6741,6755],{"className":6740},[4058],[1719,6742,6744],{"className":6743,"style":5838},[4062],[1719,6745,6746,6749],{"style":4566},[1719,6747],{"className":6748,"style":4071},[4070],[1719,6750,6752],{"className":6751},[4075,4076,4077,4078],[1719,6753,651],{"className":6754},[3978,4078],[1719,6756,4090],{"className":6757},[4089],[1719,6759,6761],{"className":6760},[4058],[1719,6762,6764],{"className":6763,"style":4097},[4062],[1719,6765],{}," 时，",[1719,6768,6770,6794],{"className":6769},[2629],[1719,6771,6773],{"className":6772},[2633],[2635,6774,6775],{"xmlns":2637},[2639,6776,6777,6791],{},[2642,6778,6779,6787,6789],{},[6422,6780,6781,6783,6785],{},[3932,6782,4789],{},[5072,6784,651],{},[2645,6786,6431],{"mathvariant":5434,"lspace":6430,"rspace":6430},[2645,6788,1552],{},[5072,6790,655],{},[2649,6792,6793],{"encoding":2651},"P_0' = 1",[1719,6795,6797,6866],{"className":6796,"ariaHidden":2657},[2656],[1719,6798,6800,6803,6857,6860,6863],{"className":6799},[2661],[1719,6801],{"className":6802,"style":6466},[2665],[1719,6804,6806,6809],{"className":6805},[3978],[1719,6807,4789],{"className":6808,"style":4810},[3978,3979],[1719,6810,6812],{"className":6811},[4049],[1719,6813,6815,6849],{"className":6814},[4053,4054],[1719,6816,6818,6846],{"className":6817},[4058],[1719,6819,6821,6832],{"className":6820,"style":6485},[4062],[1719,6822,6823,6826],{"style":6488},[1719,6824],{"className":6825,"style":4071},[4070],[1719,6827,6829],{"className":6828},[4075,4076,4077,4078],[1719,6830,651],{"className":6831},[3978,4078],[1719,6833,6834,6837],{"style":6500},[1719,6835],{"className":6836,"style":4071},[4070],[1719,6838,6840],{"className":6839},[4075,4076,4077,4078],[1719,6841,6843],{"className":6842},[3978,4078],[1719,6844,6431],{"className":6845},[3978,4078],[1719,6847,4090],{"className":6848},[4089],[1719,6850,6852],{"className":6851},[4058],[1719,6853,6855],{"className":6854,"style":6522},[4062],[1719,6856],{},[1719,6858],{"className":6859,"style":3985},[3984],[1719,6861,1552],{"className":6862},[2670],[1719,6864],{"className":6865,"style":3985},[3984],[1719,6867,6869,6872],{"className":6868},[2661],[1719,6870],{"className":6871,"style":5749},[2665],[1719,6873,655],{"className":6874},[3978],[359,6876,6877,6878,6633,7091,6766,7223,564],{},"第二个 XNOR 门计算 ",[1719,6879,6881,6921],{"className":6880},[2629],[1719,6882,6884],{"className":6883},[2633],[2635,6885,6886],{"xmlns":2637},[2639,6887,6888,6918],{},[2642,6889,6890,6898,6900,6902,6908,6910,6916],{},[6422,6891,6892,6894,6896],{},[3932,6893,4789],{},[5072,6895,655],{},[2645,6897,6431],{"mathvariant":5434,"lspace":6430,"rspace":6430},[2645,6899,1552],{},[2645,6901,4136],{"stretchy":1128},[3949,6903,6904,6906],{},[3932,6905,4612],{},[5072,6907,655],{},[6443,6909,6445],{},[3949,6911,6912,6914],{},[3932,6913,4619],{},[5072,6915,655],{},[2645,6917,1569],{"stretchy":1128},[2649,6919,6920],{"encoding":2651},"P_1' = (a_1 \\text{ XNOR } b_1)",[1719,6922,6924,6993],{"className":6923,"ariaHidden":2657},[2656],[1719,6925,6927,6930,6984,6987,6990],{"className":6926},[2661],[1719,6928],{"className":6929,"style":6466},[2665],[1719,6931,6933,6936],{"className":6932},[3978],[1719,6934,4789],{"className":6935,"style":4810},[3978,3979],[1719,6937,6939],{"className":6938},[4049],[1719,6940,6942,6976],{"className":6941},[4053,4054],[1719,6943,6945,6973],{"className":6944},[4058],[1719,6946,6948,6959],{"className":6947,"style":6485},[4062],[1719,6949,6950,6953],{"style":6488},[1719,6951],{"className":6952,"style":4071},[4070],[1719,6954,6956],{"className":6955},[4075,4076,4077,4078],[1719,6957,655],{"className":6958},[3978,4078],[1719,6960,6961,6964],{"style":6500},[1719,6962],{"className":6963,"style":4071},[4070],[1719,6965,6967],{"className":6966},[4075,4076,4077,4078],[1719,6968,6970],{"className":6969},[3978,4078],[1719,6971,6431],{"className":6972},[3978,4078],[1719,6974,4090],{"className":6975},[4089],[1719,6977,6979],{"className":6978},[4058],[1719,6980,6982],{"className":6981,"style":6522},[4062],[1719,6983],{},[1719,6985],{"className":6986,"style":3985},[3984],[1719,6988,1552],{"className":6989},[2670],[1719,6991],{"className":6992,"style":3985},[3984],[1719,6994,6996,6999,7002,7042,7048,7088],{"className":6995},[2661],[1719,6997],{"className":6998,"style":4263},[2665],[1719,7000,4136],{"className":7001},[4267],[1719,7003,7005,7008],{"className":7004},[3978],[1719,7006,4612],{"className":7007},[3978,3979],[1719,7009,7011],{"className":7010},[4049],[1719,7012,7014,7034],{"className":7013},[4053,4054],[1719,7015,7017,7031],{"className":7016},[4058],[1719,7018,7020],{"className":7019,"style":5838},[4062],[1719,7021,7022,7025],{"style":4566},[1719,7023],{"className":7024,"style":4071},[4070],[1719,7026,7028],{"className":7027},[4075,4076,4077,4078],[1719,7029,655],{"className":7030},[3978,4078],[1719,7032,4090],{"className":7033},[4089],[1719,7035,7037],{"className":7036},[4058],[1719,7038,7040],{"className":7039,"style":4097},[4062],[1719,7041],{},[1719,7043,7045],{"className":7044},[3978,6586],[1719,7046,6445],{"className":7047},[3978],[1719,7049,7051,7054],{"className":7050},[3978],[1719,7052,4619],{"className":7053},[3978,3979],[1719,7055,7057],{"className":7056},[4049],[1719,7058,7060,7080],{"className":7059},[4053,4054],[1719,7061,7063,7077],{"className":7062},[4058],[1719,7064,7066],{"className":7065,"style":5838},[4062],[1719,7067,7068,7071],{"style":4566},[1719,7069],{"className":7070,"style":4071},[4070],[1719,7072,7074],{"className":7073},[4075,4076,4077,4078],[1719,7075,655],{"className":7076},[3978,4078],[1719,7078,4090],{"className":7079},[4089],[1719,7081,7083],{"className":7082},[4058],[1719,7084,7086],{"className":7085,"style":4097},[4062],[1719,7087],{},[1719,7089,1569],{"className":7090},[4292],[1719,7092,7094,7119],{"className":7093},[2629],[1719,7095,7097],{"className":7096},[2633],[2635,7098,7099],{"xmlns":2637},[2639,7100,7101,7117],{},[2642,7102,7103,7109,7111],{},[3949,7104,7105,7107],{},[3932,7106,4612],{},[5072,7108,655],{},[2645,7110,1552],{},[3949,7112,7113,7115],{},[3932,7114,4619],{},[5072,7116,655],{},[2649,7118,6290],{"encoding":2651},[1719,7120,7122,7177],{"className":7121,"ariaHidden":2657},[2656],[1719,7123,7125,7128,7168,7171,7174],{"className":7124},[2661],[1719,7126],{"className":7127,"style":6163},[2665],[1719,7129,7131,7134],{"className":7130},[3978],[1719,7132,4612],{"className":7133},[3978,3979],[1719,7135,7137],{"className":7136},[4049],[1719,7138,7140,7160],{"className":7139},[4053,4054],[1719,7141,7143,7157],{"className":7142},[4058],[1719,7144,7146],{"className":7145,"style":5838},[4062],[1719,7147,7148,7151],{"style":4566},[1719,7149],{"className":7150,"style":4071},[4070],[1719,7152,7154],{"className":7153},[4075,4076,4077,4078],[1719,7155,655],{"className":7156},[3978,4078],[1719,7158,4090],{"className":7159},[4089],[1719,7161,7163],{"className":7162},[4058],[1719,7164,7166],{"className":7165,"style":4097},[4062],[1719,7167],{},[1719,7169],{"className":7170,"style":3985},[3984],[1719,7172,1552],{"className":7173},[2670],[1719,7175],{"className":7176,"style":3985},[3984],[1719,7178,7180,7183],{"className":7179},[2661],[1719,7181],{"className":7182,"style":4689},[2665],[1719,7184,7186,7189],{"className":7185},[3978],[1719,7187,4619],{"className":7188},[3978,3979],[1719,7190,7192],{"className":7191},[4049],[1719,7193,7195,7215],{"className":7194},[4053,4054],[1719,7196,7198,7212],{"className":7197},[4058],[1719,7199,7201],{"className":7200,"style":5838},[4062],[1719,7202,7203,7206],{"style":4566},[1719,7204],{"className":7205,"style":4071},[4070],[1719,7207,7209],{"className":7208},[4075,4076,4077,4078],[1719,7210,655],{"className":7211},[3978,4078],[1719,7213,4090],{"className":7214},[4089],[1719,7216,7218],{"className":7217},[4058],[1719,7219,7221],{"className":7220,"style":4097},[4062],[1719,7222],{},[1719,7224,7226,7250],{"className":7225},[2629],[1719,7227,7229],{"className":7228},[2633],[2635,7230,7231],{"xmlns":2637},[2639,7232,7233,7247],{},[2642,7234,7235,7243,7245],{},[6422,7236,7237,7239,7241],{},[3932,7238,4789],{},[5072,7240,655],{},[2645,7242,6431],{"mathvariant":5434,"lspace":6430,"rspace":6430},[2645,7244,1552],{},[5072,7246,655],{},[2649,7248,7249],{"encoding":2651},"P_1' = 1",[1719,7251,7253,7322],{"className":7252,"ariaHidden":2657},[2656],[1719,7254,7256,7259,7313,7316,7319],{"className":7255},[2661],[1719,7257],{"className":7258,"style":6466},[2665],[1719,7260,7262,7265],{"className":7261},[3978],[1719,7263,4789],{"className":7264,"style":4810},[3978,3979],[1719,7266,7268],{"className":7267},[4049],[1719,7269,7271,7305],{"className":7270},[4053,4054],[1719,7272,7274,7302],{"className":7273},[4058],[1719,7275,7277,7288],{"className":7276,"style":6485},[4062],[1719,7278,7279,7282],{"style":6488},[1719,7280],{"className":7281,"style":4071},[4070],[1719,7283,7285],{"className":7284},[4075,4076,4077,4078],[1719,7286,655],{"className":7287},[3978,4078],[1719,7289,7290,7293],{"style":6500},[1719,7291],{"className":7292,"style":4071},[4070],[1719,7294,7296],{"className":7295},[4075,4076,4077,4078],[1719,7297,7299],{"className":7298},[3978,4078],[1719,7300,6431],{"className":7301},[3978,4078],[1719,7303,4090],{"className":7304},[4089],[1719,7306,7308],{"className":7307},[4058],[1719,7309,7311],{"className":7310,"style":6522},[4062],[1719,7312],{},[1719,7314],{"className":7315,"style":3985},[3984],[1719,7317,1552],{"className":7318},[2670],[1719,7320],{"className":7321,"style":3985},[3984],[1719,7323,7325,7328],{"className":7324},[2661],[1719,7326],{"className":7327,"style":5749},[2665],[1719,7329,655],{"className":7330},[3978],[359,7332,7333,7334,564],{},"最后的 OR 门计算 ",[1719,7335,7337,7372],{"className":7336},[2629],[1719,7338,7340],{"className":7339},[2633],[2635,7341,7342],{"xmlns":2637},[2639,7343,7344,7369],{},[2642,7345,7346,7348,7350,7358,7361],{},[6443,7347,1116],{},[2645,7349,1552],{},[6422,7351,7352,7354,7356],{},[3932,7353,4789],{},[5072,7355,651],{},[2645,7357,6431],{"mathvariant":5434,"lspace":6430,"rspace":6430},[6443,7359,7360],{}," OR ",[6422,7362,7363,7365,7367],{},[3932,7364,4789],{},[5072,7366,655],{},[2645,7368,6431],{"mathvariant":5434,"lspace":6430,"rspace":6430},[2649,7370,7371],{"encoding":2651},"\\text{sel} = P_0' \\text{ OR } P_1'",[1719,7373,7375,7397],{"className":7374,"ariaHidden":2657},[2656],[1719,7376,7378,7382,7388,7391,7394],{"className":7377},[2661],[1719,7379],{"className":7380,"style":7381},[2665],"height:0.6944em;",[1719,7383,7385],{"className":7384},[3978,6586],[1719,7386,1116],{"className":7387},[3978],[1719,7389],{"className":7390,"style":3985},[3984],[1719,7392,1552],{"className":7393},[2670],[1719,7395],{"className":7396,"style":3985},[3984],[1719,7398,7400,7403,7457,7463],{"className":7399},[2661],[1719,7401],{"className":7402,"style":6466},[2665],[1719,7404,7406,7409],{"className":7405},[3978],[1719,7407,4789],{"className":7408,"style":4810},[3978,3979],[1719,7410,7412],{"className":7411},[4049],[1719,7413,7415,7449],{"className":7414},[4053,4054],[1719,7416,7418,7446],{"className":7417},[4058],[1719,7419,7421,7432],{"className":7420,"style":6485},[4062],[1719,7422,7423,7426],{"style":6488},[1719,7424],{"className":7425,"style":4071},[4070],[1719,7427,7429],{"className":7428},[4075,4076,4077,4078],[1719,7430,651],{"className":7431},[3978,4078],[1719,7433,7434,7437],{"style":6500},[1719,7435],{"className":7436,"style":4071},[4070],[1719,7438,7440],{"className":7439},[4075,4076,4077,4078],[1719,7441,7443],{"className":7442},[3978,4078],[1719,7444,6431],{"className":7445},[3978,4078],[1719,7447,4090],{"className":7448},[4089],[1719,7450,7452],{"className":7451},[4058],[1719,7453,7455],{"className":7454,"style":6522},[4062],[1719,7456],{},[1719,7458,7460],{"className":7459},[3978,6586],[1719,7461,7360],{"className":7462},[3978],[1719,7464,7466,7469],{"className":7465},[3978],[1719,7467,4789],{"className":7468,"style":4810},[3978,3979],[1719,7470,7472],{"className":7471},[4049],[1719,7473,7475,7509],{"className":7474},[4053,4054],[1719,7476,7478,7506],{"className":7477},[4058],[1719,7479,7481,7492],{"className":7480,"style":6485},[4062],[1719,7482,7483,7486],{"style":6488},[1719,7484],{"className":7485,"style":4071},[4070],[1719,7487,7489],{"className":7488},[4075,4076,4077,4078],[1719,7490,655],{"className":7491},[3978,4078],[1719,7493,7494,7497],{"style":6500},[1719,7495],{"className":7496,"style":4071},[4070],[1719,7498,7500],{"className":7499},[4075,4076,4077,4078],[1719,7501,7503],{"className":7502},[3978,4078],[1719,7504,6431],{"className":7505},[3978,4078],[1719,7507,4090],{"className":7508},[4089],[1719,7510,7512],{"className":7511},[4058],[1719,7513,7515],{"className":7514,"style":6522},[4062],[1719,7516],{},[359,7518,7519,7520,564],{},"所以，",[1719,7521,7523,7577],{"className":7522},[2629],[1719,7524,7526],{"className":7525},[2633],[2635,7527,7528],{"xmlns":2637},[2639,7529,7530,7574],{},[2642,7531,7532,7534,7536,7538,7544,7546,7552,7554,7556,7558,7564,7566,7572],{},[6443,7533,1116],{},[2645,7535,1552],{},[2645,7537,4136],{"stretchy":1128},[3949,7539,7540,7542],{},[3932,7541,4612],{},[5072,7543,651],{},[2645,7545,1552],{},[3949,7547,7548,7550],{},[3932,7549,4619],{},[5072,7551,651],{},[2645,7553,1569],{"stretchy":1128},[6443,7555,7360],{},[2645,7557,4136],{"stretchy":1128},[3949,7559,7560,7562],{},[3932,7561,4612],{},[5072,7563,655],{},[2645,7565,1552],{},[3949,7567,7568,7570],{},[3932,7569,4619],{},[5072,7571,655],{},[2645,7573,1569],{"stretchy":1128},[2649,7575,7576],{"encoding":2651},"\\text{sel} = (a_0 = b_0) \\text{ OR } (a_1 = b_1)",[1719,7578,7580,7601,7659,7766],{"className":7579,"ariaHidden":2657},[2656],[1719,7581,7583,7586,7592,7595,7598],{"className":7582},[2661],[1719,7584],{"className":7585,"style":7381},[2665],[1719,7587,7589],{"className":7588},[3978,6586],[1719,7590,1116],{"className":7591},[3978],[1719,7593],{"className":7594,"style":3985},[3984],[1719,7596,1552],{"className":7597},[2670],[1719,7599],{"className":7600,"style":3985},[3984],[1719,7602,7604,7607,7610,7650,7653,7656],{"className":7603},[2661],[1719,7605],{"className":7606,"style":4263},[2665],[1719,7608,4136],{"className":7609},[4267],[1719,7611,7613,7616],{"className":7612},[3978],[1719,7614,4612],{"className":7615},[3978,3979],[1719,7617,7619],{"className":7618},[4049],[1719,7620,7622,7642],{"className":7621},[4053,4054],[1719,7623,7625,7639],{"className":7624},[4058],[1719,7626,7628],{"className":7627,"style":5838},[4062],[1719,7629,7630,7633],{"style":4566},[1719,7631],{"className":7632,"style":4071},[4070],[1719,7634,7636],{"className":7635},[4075,4076,4077,4078],[1719,7637,651],{"className":7638},[3978,4078],[1719,7640,4090],{"className":7641},[4089],[1719,7643,7645],{"className":7644},[4058],[1719,7646,7648],{"className":7647,"style":4097},[4062],[1719,7649],{},[1719,7651],{"className":7652,"style":3985},[3984],[1719,7654,1552],{"className":7655},[2670],[1719,7657],{"className":7658,"style":3985},[3984],[1719,7660,7662,7665,7705,7708,7714,7717,7757,7760,7763],{"className":7661},[2661],[1719,7663],{"className":7664,"style":4263},[2665],[1719,7666,7668,7671],{"className":7667},[3978],[1719,7669,4619],{"className":7670},[3978,3979],[1719,7672,7674],{"className":7673},[4049],[1719,7675,7677,7697],{"className":7676},[4053,4054],[1719,7678,7680,7694],{"className":7679},[4058],[1719,7681,7683],{"className":7682,"style":5838},[4062],[1719,7684,7685,7688],{"style":4566},[1719,7686],{"className":7687,"style":4071},[4070],[1719,7689,7691],{"className":7690},[4075,4076,4077,4078],[1719,7692,651],{"className":7693},[3978,4078],[1719,7695,4090],{"className":7696},[4089],[1719,7698,7700],{"className":7699},[4058],[1719,7701,7703],{"className":7702,"style":4097},[4062],[1719,7704],{},[1719,7706,1569],{"className":7707},[4292],[1719,7709,7711],{"className":7710},[3978,6586],[1719,7712,7360],{"className":7713},[3978],[1719,7715,4136],{"className":7716},[4267],[1719,7718,7720,7723],{"className":7719},[3978],[1719,7721,4612],{"className":7722},[3978,3979],[1719,7724,7726],{"className":7725},[4049],[1719,7727,7729,7749],{"className":7728},[4053,4054],[1719,7730,7732,7746],{"className":7731},[4058],[1719,7733,7735],{"className":7734,"style":5838},[4062],[1719,7736,7737,7740],{"style":4566},[1719,7738],{"className":7739,"style":4071},[4070],[1719,7741,7743],{"className":7742},[4075,4076,4077,4078],[1719,7744,655],{"className":7745},[3978,4078],[1719,7747,4090],{"className":7748},[4089],[1719,7750,7752],{"className":7751},[4058],[1719,7753,7755],{"className":7754,"style":4097},[4062],[1719,7756],{},[1719,7758],{"className":7759,"style":3985},[3984],[1719,7761,1552],{"className":7762},[2670],[1719,7764],{"className":7765,"style":3985},[3984],[1719,7767,7769,7772,7812],{"className":7768},[2661],[1719,7770],{"className":7771,"style":4263},[2665],[1719,7773,7775,7778],{"className":7774},[3978],[1719,7776,4619],{"className":7777},[3978,3979],[1719,7779,7781],{"className":7780},[4049],[1719,7782,7784,7804],{"className":7783},[4053,4054],[1719,7785,7787,7801],{"className":7786},[4058],[1719,7788,7790],{"className":7789,"style":5838},[4062],[1719,7791,7792,7795],{"style":4566},[1719,7793],{"className":7794,"style":4071},[4070],[1719,7796,7798],{"className":7797},[4075,4076,4077,4078],[1719,7799,655],{"className":7800},[3978,4078],[1719,7802,4090],{"className":7803},[4089],[1719,7805,7807],{"className":7806},[4058],[1719,7808,7810],{"className":7809,"style":4097},[4062],[1719,7811],{},[1719,7813,1569],{"className":7814},[4292],[359,7816,7817,399,7822,7825,7826],{},[339,7818,7819],{},[362,7820,7821],{"code":7821},"sel=1",[339,7823,7824],{},"意味着 \"不跳跃\""," （因为至少有一位不满足传播条件）。\n",[339,7827,7828],{},"分析 MUX（多路选择器）：",[359,7830,7831,7834,7835,7905],{},[339,7832,7833],{},"输入 0："," \"跳跃的进位 ",[1719,7836,7838,7856],{"className":7837},[2629],[1719,7839,7841],{"className":7840},[2633],[2635,7842,7843],{"xmlns":2637},[2639,7844,7845,7853],{},[2642,7846,7847],{},[3949,7848,7849,7851],{},[3932,7850,5064],{},[5072,7852,651],{},[2649,7854,7855],{"encoding":2651},"c_0",[1719,7857,7859],{"className":7858,"ariaHidden":2657},[2656],[1719,7860,7862,7865],{"className":7861},[2661],[1719,7863],{"className":7864,"style":6163},[2665],[1719,7866,7868,7871],{"className":7867},[3978],[1719,7869,5064],{"className":7870},[3978,3979],[1719,7872,7874],{"className":7873},[4049],[1719,7875,7877,7897],{"className":7876},[4053,4054],[1719,7878,7880,7894],{"className":7879},[4058],[1719,7881,7883],{"className":7882,"style":5838},[4062],[1719,7884,7885,7888],{"style":4566},[1719,7886],{"className":7887,"style":4071},[4070],[1719,7889,7891],{"className":7890},[4075,4076,4077,4078],[1719,7892,651],{"className":7893},[3978,4078],[1719,7895,4090],{"className":7896},[4089],[1719,7898,7900],{"className":7899},[4058],[1719,7901,7903],{"className":7902,"style":4097},[4062],[1719,7904],{},"\"",[359,7907,7908,7911,7912,1120,7983,8053,8054,1569],{},[339,7909,7910],{},"输入 1："," \"内部的进位 ",[1719,7913,7915,7934],{"className":7914},[2629],[1719,7916,7918],{"className":7917},[2633],[2635,7919,7920],{"xmlns":2637},[2639,7921,7922,7931],{},[2642,7923,7924],{},[3949,7925,7926,7928],{},[3932,7927,5064],{},[5072,7929,7930],{},"2",[2649,7932,7933],{"encoding":2651},"c_2",[1719,7935,7937],{"className":7936,"ariaHidden":2657},[2656],[1719,7938,7940,7943],{"className":7939},[2661],[1719,7941],{"className":7942,"style":6163},[2665],[1719,7944,7946,7949],{"className":7945},[3978],[1719,7947,5064],{"className":7948},[3978,3979],[1719,7950,7952],{"className":7951},[4049],[1719,7953,7955,7975],{"className":7954},[4053,4054],[1719,7956,7958,7972],{"className":7957},[4058],[1719,7959,7961],{"className":7960,"style":5838},[4062],[1719,7962,7963,7966],{"style":4566},[1719,7964],{"className":7965,"style":4071},[4070],[1719,7967,7969],{"className":7968},[4075,4076,4077,4078],[1719,7970,7930],{"className":7971},[3978,4078],[1719,7973,4090],{"className":7974},[4089],[1719,7976,7978],{"className":7977},[4058],[1719,7979,7981],{"className":7980,"style":4097},[4062],[1719,7982],{},[1719,7984,7986,8004],{"className":7985},[2629],[1719,7987,7989],{"className":7988},[2633],[2635,7990,7991],{"xmlns":2637},[2639,7992,7993,8001],{},[2642,7994,7995],{},[3949,7996,7997,7999],{},[3932,7998,4531],{},[5072,8000,7930],{},[2649,8002,8003],{"encoding":2651},"G_2",[1719,8005,8007],{"className":8006,"ariaHidden":2657},[2656],[1719,8008,8010,8013],{"className":8009},[2661],[1719,8011],{"className":8012,"style":4038},[2665],[1719,8014,8016,8019],{"className":8015},[3978],[1719,8017,4531],{"className":8018},[3978,3979],[1719,8020,8022],{"className":8021},[4049],[1719,8023,8025,8045],{"className":8024},[4053,4054],[1719,8026,8028,8042],{"className":8027},[4058],[1719,8029,8031],{"className":8030,"style":5838},[4062],[1719,8032,8033,8036],{"style":4566},[1719,8034],{"className":8035,"style":4071},[4070],[1719,8037,8039],{"className":8038},[4075,4076,4077,4078],[1719,8040,7930],{"className":8041},[3978,4078],[1719,8043,4090],{"className":8044},[4089],[1719,8046,8048],{"className":8047},[4058],[1719,8049,8051],{"className":8050,"style":4097},[4062],[1719,8052],{},"\" (即在块内部通过RCA正常算出来的 ",[1719,8055,8057,8074],{"className":8056},[2629],[1719,8058,8060],{"className":8059},[2633],[2635,8061,8062],{"xmlns":2637},[2639,8063,8064,8072],{},[2642,8065,8066],{},[3949,8067,8068,8070],{},[3932,8069,5064],{},[5072,8071,7930],{},[2649,8073,7933],{"encoding":2651},[1719,8075,8077],{"className":8076,"ariaHidden":2657},[2656],[1719,8078,8080,8083],{"className":8079},[2661],[1719,8081],{"className":8082,"style":6163},[2665],[1719,8084,8086,8089],{"className":8085},[3978],[1719,8087,5064],{"className":8088},[3978,3979],[1719,8090,8092],{"className":8091},[4049],[1719,8093,8095,8115],{"className":8094},[4053,4054],[1719,8096,8098,8112],{"className":8097},[4058],[1719,8099,8101],{"className":8100,"style":5838},[4062],[1719,8102,8103,8106],{"style":4566},[1719,8104],{"className":8105,"style":4071},[4070],[1719,8107,8109],{"className":8108},[4075,4076,4077,4078],[1719,8110,7930],{"className":8111},[3978,4078],[1719,8113,4090],{"className":8114},[4089],[1719,8116,8118],{"className":8117},[4058],[1719,8119,8121],{"className":8120,"style":4097},[4062],[1719,8122],{},[359,8124,8125,399,8128],{},[339,8126,8127],{},"选择端：",[362,8129,1116],{"code":1116},[960,8131,8133],{"id":8132},"进位选择加法器",[339,8134,8132],{},[274,8136,8137],{},"对不同的ci都进行计算，得到两个结果，再用MUX选择器",[356,8139,8140,8147],{},[359,8141,8142,8143,8146],{},"推测计算 (Speculative Execution)。与其等待",[362,8144,8145],{"code":8145},"C_{in}",", 不如先计算出两种可能的结果。",[359,8148,3407,8149,8151,8152],{},[289,8150,3494],{}," 速度快（接近 CLA）, 但代价是面积（几乎两套加法电路 + MUX）。\n",[327,8153],{"alt":327,"src":8154},"\u002Fimg\u002FHDL\u002FFeiQilai1-49.png",[274,8156,8157],{},[327,8158],{"alt":327,"src":8159},"\u002Fimg\u002FHDL\u002FFeiQilai1-50.png",[274,8161,8162,8165,8166,8168,8169,8245],{},[339,8163,8164],{},"并行计算："," \"进位0\" 电路和 \"进位1\" 电路",[339,8167,5357],{},"开始工作，它们都不需要等待 ",[1719,8170,8172,8193],{"className":8171},[2629],[1719,8173,8175],{"className":8174},[2633],[2635,8176,8177],{"xmlns":2637},[2639,8178,8179,8191],{},[2642,8180,8181],{},[3949,8182,8183,8185],{},[3932,8184,3953],{},[2642,8186,8187,8189],{},[3932,8188,3958],{},[3932,8190,3961],{},[2649,8192,8145],{"encoding":2651},[1719,8194,8196],{"className":8195,"ariaHidden":2657},[2656],[1719,8197,8199,8202],{"className":8198},[2661],[1719,8200],{"className":8201,"style":4038},[2665],[1719,8203,8205,8208],{"className":8204},[3978],[1719,8206,3953],{"className":8207,"style":4045},[3978,3979],[1719,8209,8211],{"className":8210},[4049],[1719,8212,8214,8237],{"className":8213},[4053,4054],[1719,8215,8217,8234],{"className":8216},[4058],[1719,8218,8220],{"className":8219,"style":4063},[4062],[1719,8221,8222,8225],{"style":4066},[1719,8223],{"className":8224,"style":4071},[4070],[1719,8226,8228],{"className":8227},[4075,4076,4077,4078],[1719,8229,8231],{"className":8230},[3978,4078],[1719,8232,4085],{"className":8233},[3978,3979,4078],[1719,8235,4090],{"className":8236},[4089],[1719,8238,8240],{"className":8239},[4058],[1719,8241,8243],{"className":8242,"style":4097},[4062],[1719,8244],{},"，而是各自按自己的“假设”进行计算。",[274,8247,8248,399,8251,8327,8329,8330,8333,8334,564],{},[339,8249,8250],{},"等待",[1719,8252,8254,8275],{"className":8253},[2629],[1719,8255,8257],{"className":8256},[2633],[2635,8258,8259],{"xmlns":2637},[2639,8260,8261,8273],{},[2642,8262,8263],{},[3949,8264,8265,8267],{},[3932,8266,3953],{},[2642,8268,8269,8271],{},[3932,8270,3958],{},[3932,8272,3961],{},[2649,8274,8145],{"encoding":2651},[1719,8276,8278],{"className":8277,"ariaHidden":2657},[2656],[1719,8279,8281,8284],{"className":8280},[2661],[1719,8282],{"className":8283,"style":4038},[2665],[1719,8285,8287,8290],{"className":8286},[3978],[1719,8288,3953],{"className":8289,"style":4045},[3978,3979],[1719,8291,8293],{"className":8292},[4049],[1719,8294,8296,8319],{"className":8295},[4053,4054],[1719,8297,8299,8316],{"className":8298},[4058],[1719,8300,8302],{"className":8301,"style":4063},[4062],[1719,8303,8304,8307],{"style":4066},[1719,8305],{"className":8306,"style":4071},[4070],[1719,8308,8310],{"className":8309},[4075,4076,4077,4078],[1719,8311,8313],{"className":8312},[3978,4078],[1719,8314,4085],{"className":8315},[3978,3979,4078],[1719,8317,4090],{"className":8318},[4089],[1719,8320,8322],{"className":8321},[4058],[1719,8323,8325],{"className":8324,"style":4097},[4062],[1719,8326],{},[339,8328,513],{}," \"前级\" 电路（可能是另一个加法器块）最终会算出一个",[339,8331,8332],{},"真实","的 ",[1719,8335,8337,8358],{"className":8336},[2629],[1719,8338,8340],{"className":8339},[2633],[2635,8341,8342],{"xmlns":2637},[2639,8343,8344,8356],{},[2642,8345,8346],{},[3949,8347,8348,8350],{},[3932,8349,3953],{},[2642,8351,8352,8354],{},[3932,8353,3958],{},[3932,8355,3961],{},[2649,8357,8145],{"encoding":2651},[1719,8359,8361],{"className":8360,"ariaHidden":2657},[2656],[1719,8362,8364,8367],{"className":8363},[2661],[1719,8365],{"className":8366,"style":4038},[2665],[1719,8368,8370,8373],{"className":8369},[3978],[1719,8371,3953],{"className":8372,"style":4045},[3978,3979],[1719,8374,8376],{"className":8375},[4049],[1719,8377,8379,8402],{"className":8378},[4053,4054],[1719,8380,8382,8399],{"className":8381},[4058],[1719,8383,8385],{"className":8384,"style":4063},[4062],[1719,8386,8387,8390],{"style":4066},[1719,8388],{"className":8389,"style":4071},[4070],[1719,8391,8393],{"className":8392},[4075,4076,4077,4078],[1719,8394,8396],{"className":8395},[3978,4078],[1719,8397,4085],{"className":8398},[3978,3979,4078],[1719,8400,4090],{"className":8401},[4089],[1719,8403,8405],{"className":8404},[4058],[1719,8406,8408],{"className":8407,"style":4097},[4062],[1719,8409],{},[274,8411,8412],{},[339,8413,8414],{},"选择 (Select)：",[356,8416,8417,8502,8577,8662],{},[359,8418,8419,8420,8333,8422,8498,8499,564],{},"这个",[339,8421,8332],{},[1719,8423,8425,8446],{"className":8424},[2629],[1719,8426,8428],{"className":8427},[2633],[2635,8429,8430],{"xmlns":2637},[2639,8431,8432,8444],{},[2642,8433,8434],{},[3949,8435,8436,8438],{},[3932,8437,3953],{},[2642,8439,8440,8442],{},[3932,8441,3958],{},[3932,8443,3961],{},[2649,8445,8145],{"encoding":2651},[1719,8447,8449],{"className":8448,"ariaHidden":2657},[2656],[1719,8450,8452,8455],{"className":8451},[2661],[1719,8453],{"className":8454,"style":4038},[2665],[1719,8456,8458,8461],{"className":8457},[3978],[1719,8459,3953],{"className":8460,"style":4045},[3978,3979],[1719,8462,8464],{"className":8463},[4049],[1719,8465,8467,8490],{"className":8466},[4053,4054],[1719,8468,8470,8487],{"className":8469},[4058],[1719,8471,8473],{"className":8472,"style":4063},[4062],[1719,8474,8475,8478],{"style":4066},[1719,8476],{"className":8477,"style":4071},[4070],[1719,8479,8481],{"className":8480},[4075,4076,4077,4078],[1719,8482,8484],{"className":8483},[3978,4078],[1719,8485,4085],{"className":8486},[3978,3979,4078],[1719,8488,4090],{"className":8489},[4089],[1719,8491,8493],{"className":8492},[4058],[1719,8494,8496],{"className":8495,"style":4097},[4062],[1719,8497],{}," 被直接用作一组“多路选择器”(MUX) 的",[339,8500,8501],{},"选择信号 (sel)",[359,8503,8504,8505,8576],{},"每一个 ",[1719,8506,8508,8526],{"className":8507},[2629],[1719,8509,8511],{"className":8510},[2633],[2635,8512,8513],{"xmlns":2637},[2639,8514,8515,8523],{},[2642,8516,8517],{},[3949,8518,8519,8521],{},[3932,8520,3934],{},[3932,8522,3958],{},[2649,8524,8525],{"encoding":2651},"S_i",[1719,8527,8529],{"className":8528,"ariaHidden":2657},[2656],[1719,8530,8532,8535],{"className":8531},[2661],[1719,8533],{"className":8534,"style":4038},[2665],[1719,8536,8538,8541],{"className":8537},[3978],[1719,8539,3934],{"className":8540,"style":3980},[3978,3979],[1719,8542,8544],{"className":8543},[4049],[1719,8545,8547,8568],{"className":8546},[4053,4054],[1719,8548,8550,8565],{"className":8549},[4058],[1719,8551,8553],{"className":8552,"style":4063},[4062],[1719,8554,8556,8559],{"style":8555},"top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;",[1719,8557],{"className":8558,"style":4071},[4070],[1719,8560,8562],{"className":8561},[4075,4076,4077,4078],[1719,8563,3958],{"className":8564},[3978,3979,4078],[1719,8566,4090],{"className":8567},[4089],[1719,8569,8571],{"className":8570},[4058],[1719,8572,8574],{"className":8573,"style":4097},[4062],[1719,8575],{}," 输出位都有一个 MUX。",[359,8578,8579,399,8582,399,8658,8661],{},[339,8580,8581],{},"如果真实的",[1719,8583,8585,8606],{"className":8584},[2629],[1719,8586,8588],{"className":8587},[2633],[2635,8589,8590],{"xmlns":2637},[2639,8591,8592,8604],{},[2642,8593,8594],{},[3949,8595,8596,8598],{},[3932,8597,3953],{},[2642,8599,8600,8602],{},[3932,8601,3958],{},[3932,8603,3961],{},[2649,8605,8145],{"encoding":2651},[1719,8607,8609],{"className":8608,"ariaHidden":2657},[2656],[1719,8610,8612,8615],{"className":8611},[2661],[1719,8613],{"className":8614,"style":4038},[2665],[1719,8616,8618,8621],{"className":8617},[3978],[1719,8619,3953],{"className":8620,"style":4045},[3978,3979],[1719,8622,8624],{"className":8623},[4049],[1719,8625,8627,8650],{"className":8626},[4053,4054],[1719,8628,8630,8647],{"className":8629},[4058],[1719,8631,8633],{"className":8632,"style":4063},[4062],[1719,8634,8635,8638],{"style":4066},[1719,8636],{"className":8637,"style":4071},[4070],[1719,8639,8641],{"className":8640},[4075,4076,4077,4078],[1719,8642,8644],{"className":8643},[3978,4078],[1719,8645,4085],{"className":8646},[3978,3979,4078],[1719,8648,4090],{"className":8649},[4089],[1719,8651,8653],{"className":8652},[4058],[1719,8654,8656],{"className":8655,"style":4097},[4062],[1719,8657],{},[339,8659,8660],{},"是 0："," 所有的 MUX 都会选择 \"进位0\" 电路算出的结果。",[359,8663,8664,399,8666,399,8742,8745],{},[339,8665,8581],{},[1719,8667,8669,8690],{"className":8668},[2629],[1719,8670,8672],{"className":8671},[2633],[2635,8673,8674],{"xmlns":2637},[2639,8675,8676,8688],{},[2642,8677,8678],{},[3949,8679,8680,8682],{},[3932,8681,3953],{},[2642,8683,8684,8686],{},[3932,8685,3958],{},[3932,8687,3961],{},[2649,8689,8145],{"encoding":2651},[1719,8691,8693],{"className":8692,"ariaHidden":2657},[2656],[1719,8694,8696,8699],{"className":8695},[2661],[1719,8697],{"className":8698,"style":4038},[2665],[1719,8700,8702,8705],{"className":8701},[3978],[1719,8703,3953],{"className":8704,"style":4045},[3978,3979],[1719,8706,8708],{"className":8707},[4049],[1719,8709,8711,8734],{"className":8710},[4053,4054],[1719,8712,8714,8731],{"className":8713},[4058],[1719,8715,8717],{"className":8716,"style":4063},[4062],[1719,8718,8719,8722],{"style":4066},[1719,8720],{"className":8721,"style":4071},[4070],[1719,8723,8725],{"className":8724},[4075,4076,4077,4078],[1719,8726,8728],{"className":8727},[3978,4078],[1719,8729,4085],{"className":8730},[3978,3979,4078],[1719,8732,4090],{"className":8733},[4089],[1719,8735,8737],{"className":8736},[4058],[1719,8738,8740],{"className":8739,"style":4097},[4062],[1719,8741],{},[339,8743,8744],{},"是 1："," 所有的 MUX 都会选择 \"进位1\" 电路算出的结果。",[960,8747,8749],{"id":8748},"进位保留加法器csa",[339,8750,8751],{},"进位保留加法器（CSA）",[274,8753,8754],{},"在wallace树中运用",[356,8756,8757,8760,8773],{},[359,8758,8759],{},"延迟进位的横向传播, 专用于多操作数加法（如 3 个或更多位数相加）。",[359,8761,2072,8762,8764,8765,8768,8769,8772],{},[289,8763,3494],{}," 它不是一个完整的",[362,8766,8767],{"code":8767},"A+B","加法器。它在结构上是由",[362,8770,8771],{"code":8771},"N","个并联的全加器组成（实现 3:2 压缩）。",[359,8774,8775,8776,8778,8779,8782,8783,8786,8787],{},"应用",[289,8777,3494],{}," 主要用于乘法器中的部分积求和。它将 3 个数的加法压缩为 2 个数的加法, 且延迟为",[362,8780,8781],{"code":8781},"O(1)","（一个全加器延迟）, 最后再用一个快速加法器（如 CLA）计算",[362,8784,8785],{"code":8785},"S+C","的最终结果。\n",[327,8788],{"alt":327,"src":8789},"\u002Fimg\u002FHDL\u002FFeiQilai1-51.png",[274,8791,8792],{},"CSA单元其实和普通的Full Adder单元是一样的，但是它和行波进位加法器不同的是，最大可能地进行并行计算",[274,8794,8795],{},[327,8796],{"alt":327,"src":8797},"\u002Fimg\u002FHDL\u002FFeiQilai1-52.png",[274,8799,8800],{},[327,8801],{"alt":327,"src":8802},"\u002Fimg\u002FHDL\u002FFeiQilai1-53.png",[274,8804,8805],{},"左边是普通的CSA链，其实也就是行波进位加法器，但是右边就是wallace树种的结构了，主要就是把比如九个数的计算，拆成3+3+3，这样能够最大限度减小整个计算的“深度”从而加快速度",[2419,8807],{},[331,8809,8811],{"id":8810},"阵列乘法器booth乘法器wallace乘法器的概念除法的基础方法",[277,8812,8813],{},"阵列乘法器、Booth乘法器、Wallace乘法器的概念，除法的基础方法",[960,8815,8816],{"id":8816},"阵列乘法器",[274,8818,8819],{},"阵列乘法器是一种用于实现无符号数乘法的结构。以一个4位无符号阵列乘法器为例，它通过将被乘数（如0110）与乘数（如1001）相乘，产生一系列的部分积（Partial Products）。这些部分积随后相加，最终得到乘积（如00110110）。在版图布局时，阵列会被扭正以得到矩阵排列。这种结构由全加器单元构成。",[274,8821,8822],{},[327,8823],{"alt":327,"src":8824},"\u002Fimg\u002FHDL\u002FFeiQilai1-54.png",[274,8826,8827,8830],{},[339,8828,8829],{},"竖式乘法","的过程：",[1410,8832,8836],{"className":8833,"code":8835,"language":6586},[8834],"language-text","      0110  (被乘数 y)\n    x 1001  (乘数 x)\n    -------\n      0110  \u003C-- (y 乘以 x 的第0位 '1')\n     0000   \u003C-- (y 乘以 x 的第1位 '0', 向左移1位)\n    0000    \u003C-- (y 乘以 x 的第2位 '0', 向左移2位)\n+  0110     \u003C-- (y 乘以 x 的第3位 '1', 向左移3位)\n----------------\n  00110110  (最终的“积”)\n",[362,8837,8835],{"__ignoreMap":1416},[274,8839,8840,8841,8909],{},"最长路径",[1719,8842,8844,8869],{"className":8843},[2629],[1719,8845,8847],{"className":8846},[2633],[2635,8848,8849],{"xmlns":2637},[2639,8850,8851,8866],{},[2642,8852,8853,8855,8857,8859,8862,8864],{},[5072,8854,7930],{},[2645,8856,4136],{"stretchy":1128},[3932,8858,8771],{},[2645,8860,8861],{},"−",[5072,8863,655],{},[2645,8865,1569],{"stretchy":1128},[2649,8867,8868],{"encoding":2651},"2(N-1)",[1719,8870,8872,8897],{"className":8871,"ariaHidden":2657},[2656],[1719,8873,8875,8878,8881,8884,8888,8891,8894],{"className":8874},[2661],[1719,8876],{"className":8877,"style":4263},[2665],[1719,8879,7930],{"className":8880},[3978],[1719,8882,4136],{"className":8883},[4267],[1719,8885,8771],{"className":8886,"style":8887},[3978,3979],"margin-right:0.109em;",[1719,8889],{"className":8890,"style":4005},[3984],[1719,8892,8861],{"className":8893},[4009],[1719,8895],{"className":8896,"style":4005},[3984],[1719,8898,8900,8903,8906],{"className":8899},[2661],[1719,8901],{"className":8902,"style":4263},[2665],[1719,8904,655],{"className":8905},[3978],[1719,8907,1569],{"className":8908},[4292],"个加法器",[274,8911,8912,8913,8909],{},"整体一共需要",[1719,8914,8916,8940],{"className":8915},[2629],[1719,8917,8919],{"className":8918},[2633],[2635,8920,8921],{"xmlns":2637},[2639,8922,8923,8937],{},[2642,8924,8925,8927,8929,8931,8933,8935],{},[3932,8926,8771],{},[2645,8928,4136],{"stretchy":1128},[3932,8930,8771],{},[2645,8932,8861],{},[5072,8934,655],{},[2645,8936,1569],{"stretchy":1128},[2649,8938,8939],{"encoding":2651},"N(N-1)",[1719,8941,8943,8967],{"className":8942,"ariaHidden":2657},[2656],[1719,8944,8946,8949,8952,8955,8958,8961,8964],{"className":8945},[2661],[1719,8947],{"className":8948,"style":4263},[2665],[1719,8950,8771],{"className":8951,"style":8887},[3978,3979],[1719,8953,4136],{"className":8954},[4267],[1719,8956,8771],{"className":8957,"style":8887},[3978,3979],[1719,8959],{"className":8960,"style":4005},[3984],[1719,8962,8861],{"className":8963},[4009],[1719,8965],{"className":8966,"style":4005},[3984],[1719,8968,8970,8973,8976],{"className":8969},[2661],[1719,8971],{"className":8972,"style":4263},[2665],[1719,8974,655],{"className":8975},[3978],[1719,8977,1569],{"className":8978},[4292],[960,8980,8982],{"id":8981},"booth乘法器","Booth乘法器",[274,8984,8985,8988,8989,8992,9206],{},[339,8986,8987],{},"2位Booth编码","。它不是一次只看1位乘数，而是",[339,8990,8991],{},"“通过观察y的3位”（",[1719,8993,8995,9043],{"className":8994},[2629],[1719,8996,8998],{"className":8997},[2633],[2635,8999,9000],{"xmlns":2637},[2639,9001,9002,9040],{},[2642,9003,9004,9017,9020,9026,9028],{},[3949,9005,9006,9009],{},[3932,9007,9008],{},"Y",[2642,9010,9011,9013,9015],{},[3932,9012,3958],{},[2645,9014,1966],{},[5072,9016,655],{},[2645,9018,9019],{"separator":2657},",",[3949,9021,9022,9024],{},[3932,9023,9008],{},[3932,9025,3958],{},[2645,9027,9019],{"separator":2657},[3949,9029,9030,9032],{},[3932,9031,9008],{},[2642,9033,9034,9036,9038],{},[3932,9035,3958],{},[2645,9037,8861],{},[5072,9039,655],{},[2649,9041,9042],{"encoding":2651},"Y_{i+1}, Y_i, Y_{i-1}",[1719,9044,9046],{"className":9045,"ariaHidden":2657},[2656],[1719,9047,9049,9053,9103,9107,9111,9151,9154,9157],{"className":9048},[2661],[1719,9050],{"className":9051,"style":9052},[2665],"height:0.8917em;vertical-align:-0.2083em;",[1719,9054,9056,9059],{"className":9055},[3978],[1719,9057,9008],{"className":9058,"style":4005},[3978,3979],[1719,9060,9062],{"className":9061},[4049],[1719,9063,9065,9095],{"className":9064},[4053,4054],[1719,9066,9068,9092],{"className":9067},[4058],[1719,9069,9071],{"className":9070,"style":4063},[4062],[1719,9072,9074,9077],{"style":9073},"top:-2.55em;margin-left:-0.2222em;margin-right:0.05em;",[1719,9075],{"className":9076,"style":4071},[4070],[1719,9078,9080],{"className":9079},[4075,4076,4077,4078],[1719,9081,9083,9086,9089],{"className":9082},[3978,4078],[1719,9084,3958],{"className":9085},[3978,3979,4078],[1719,9087,1966],{"className":9088},[4009,4078],[1719,9090,655],{"className":9091},[3978,4078],[1719,9093,4090],{"className":9094},[4089],[1719,9096,9098],{"className":9097},[4058],[1719,9099,9101],{"className":9100,"style":5156},[4062],[1719,9102],{},[1719,9104,9019],{"className":9105},[9106],"mpunct",[1719,9108],{"className":9109,"style":9110},[3984],"margin-right:0.1667em;",[1719,9112,9114,9117],{"className":9113},[3978],[1719,9115,9008],{"className":9116,"style":4005},[3978,3979],[1719,9118,9120],{"className":9119},[4049],[1719,9121,9123,9143],{"className":9122},[4053,4054],[1719,9124,9126,9140],{"className":9125},[4058],[1719,9127,9129],{"className":9128,"style":4063},[4062],[1719,9130,9131,9134],{"style":9073},[1719,9132],{"className":9133,"style":4071},[4070],[1719,9135,9137],{"className":9136},[4075,4076,4077,4078],[1719,9138,3958],{"className":9139},[3978,3979,4078],[1719,9141,4090],{"className":9142},[4089],[1719,9144,9146],{"className":9145},[4058],[1719,9147,9149],{"className":9148,"style":4097},[4062],[1719,9150],{},[1719,9152,9019],{"className":9153},[9106],[1719,9155],{"className":9156,"style":9110},[3984],[1719,9158,9160,9163],{"className":9159},[3978],[1719,9161,9008],{"className":9162,"style":4005},[3978,3979],[1719,9164,9166],{"className":9165},[4049],[1719,9167,9169,9198],{"className":9168},[4053,4054],[1719,9170,9172,9195],{"className":9171},[4058],[1719,9173,9175],{"className":9174,"style":4063},[4062],[1719,9176,9177,9180],{"style":9073},[1719,9178],{"className":9179,"style":4071},[4070],[1719,9181,9183],{"className":9182},[4075,4076,4077,4078],[1719,9184,9186,9189,9192],{"className":9185},[3978,4078],[1719,9187,3958],{"className":9188},[3978,3979,4078],[1719,9190,8861],{"className":9191},[4009,4078],[1719,9193,655],{"className":9194},[3978,4078],[1719,9196,4090],{"className":9197},[4089],[1719,9199,9201],{"className":9200},[4058],[1719,9202,9204],{"className":9203,"style":5156},[4062],[1719,9205],{},[339,9207,9208],{},"）来决定下一步做什么。",[274,9210,9211,9212,9394,9395],{},"使用了一个代数技巧 ",[1719,9213,9215,9256],{"className":9214},[2629],[1719,9216,9218],{"className":9217},[2633],[2635,9219,9220],{"xmlns":2637},[2639,9221,9222,9253],{},[2642,9223,9224,9231,9233,9245,9247],{},[9225,9226,9227,9229],"msup",{},[5072,9228,7930],{},[3932,9230,4612],{},[2645,9232,1552],{},[9225,9234,9235,9237],{},[5072,9236,7930],{},[2642,9238,9239,9241,9243],{},[3932,9240,4612],{},[2645,9242,1966],{},[5072,9244,655],{},[2645,9246,8861],{},[9225,9248,9249,9251],{},[5072,9250,7930],{},[3932,9252,4612],{},[2649,9254,9255],{"encoding":2651},"2^a = 2^{a+1} - 2^a",[1719,9257,9259,9304,9359],{"className":9258,"ariaHidden":2657},[2656],[1719,9260,9262,9266,9295,9298,9301],{"className":9261},[2661],[1719,9263],{"className":9264,"style":9265},[2665],"height:0.6644em;",[1719,9267,9269,9272],{"className":9268},[3978],[1719,9270,7930],{"className":9271},[3978],[1719,9273,9275],{"className":9274},[4049],[1719,9276,9278],{"className":9277},[4053],[1719,9279,9281],{"className":9280},[4058],[1719,9282,9284],{"className":9283,"style":9265},[4062],[1719,9285,9286,9289],{"style":6500},[1719,9287],{"className":9288,"style":4071},[4070],[1719,9290,9292],{"className":9291},[4075,4076,4077,4078],[1719,9293,4612],{"className":9294},[3978,3979,4078],[1719,9296],{"className":9297,"style":3985},[3984],[1719,9299,1552],{"className":9300},[2670],[1719,9302],{"className":9303,"style":3985},[3984],[1719,9305,9307,9311,9350,9353,9356],{"className":9306},[2661],[1719,9308],{"className":9309,"style":9310},[2665],"height:0.8974em;vertical-align:-0.0833em;",[1719,9312,9314,9317],{"className":9313},[3978],[1719,9315,7930],{"className":9316},[3978],[1719,9318,9320],{"className":9319},[4049],[1719,9321,9323],{"className":9322},[4053],[1719,9324,9326],{"className":9325},[4058],[1719,9327,9330],{"className":9328,"style":9329},[4062],"height:0.8141em;",[1719,9331,9332,9335],{"style":6500},[1719,9333],{"className":9334,"style":4071},[4070],[1719,9336,9338],{"className":9337},[4075,4076,4077,4078],[1719,9339,9341,9344,9347],{"className":9340},[3978,4078],[1719,9342,4612],{"className":9343},[3978,3979,4078],[1719,9345,1966],{"className":9346},[4009,4078],[1719,9348,655],{"className":9349},[3978,4078],[1719,9351],{"className":9352,"style":4005},[3984],[1719,9354,8861],{"className":9355},[4009],[1719,9357],{"className":9358,"style":4005},[3984],[1719,9360,9362,9365],{"className":9361},[2661],[1719,9363],{"className":9364,"style":9265},[2665],[1719,9366,9368,9371],{"className":9367},[3978],[1719,9369,7930],{"className":9370},[3978],[1719,9372,9374],{"className":9373},[4049],[1719,9375,9377],{"className":9376},[4053],[1719,9378,9380],{"className":9379},[4058],[1719,9381,9383],{"className":9382,"style":9265},[4062],[1719,9384,9385,9388],{"style":6500},[1719,9386],{"className":9387,"style":4071},[4070],[1719,9389,9391],{"className":9390},[4075,4076,4077,4078],[1719,9392,4612],{"className":9393},[3978,3979,4078]," 然后把某一个乘数y重写成了",[1719,9396,9398,9487],{"className":9397},[2629],[1719,9399,9401],{"className":9400},[2633],[2635,9402,9403],{"xmlns":2637},[2639,9404,9405,9484],{},[2642,9406,9407,9410,9412,9438,9444,9446,9458,9460,9466,9468,9470,9482],{},[3932,9408,9409],{},"y",[2645,9411,1552],{},[6422,9413,9414,9417,9430],{},[2645,9415,9416],{},"∑",[2642,9418,9419,9421,9423,9425,9427],{},[3932,9420,3958],{},[2645,9422,1552],{},[5072,9424,651],{},[2645,9426,9019],{"separator":2657},[6443,9428,9429],{},"even",[2642,9431,9432,9434,9436],{},[3932,9433,3961],{},[2645,9435,8861],{},[5072,9437,7930],{},[9225,9439,9440,9442],{},[5072,9441,7930],{},[3932,9443,3958],{},[2645,9445,4136],{"stretchy":1128},[3949,9447,9448,9450],{},[3932,9449,9409],{},[2642,9451,9452,9454,9456],{},[3932,9453,3958],{},[2645,9455,8861],{},[5072,9457,655],{},[2645,9459,1966],{},[3949,9461,9462,9464],{},[3932,9463,9409],{},[3932,9465,3958],{},[2645,9467,8861],{},[5072,9469,7930],{},[3949,9471,9472,9474],{},[3932,9473,9409],{},[2642,9475,9476,9478,9480],{},[3932,9477,3958],{},[2645,9479,1966],{},[5072,9481,655],{},[2645,9483,1569],{"stretchy":1128},[2649,9485,9486],{"encoding":2651},"y = \\sum_{i=0, \\text{even}}^{n-2} 2^i (y_{i-1} + y_i - 2y_{i+1})",[1719,9488,9490,9510,9698,9754],{"className":9489,"ariaHidden":2657},[2656],[1719,9491,9493,9497,9501,9504,9507],{"className":9492},[2661],[1719,9494],{"className":9495,"style":9496},[2665],"height:0.625em;vertical-align:-0.1944em;",[1719,9498,9409],{"className":9499,"style":9500},[3978,3979],"margin-right:0.0359em;",[1719,9502],{"className":9503,"style":3985},[3984],[1719,9505,1552],{"className":9506},[2670],[1719,9508],{"className":9509,"style":3985},[3984],[1719,9511,9513,9517,9603,9606,9636,9639,9689,9692,9695],{"className":9512},[2661],[1719,9514],{"className":9515,"style":9516},[2665],"height:1.3898em;vertical-align:-0.4358em;",[1719,9518,9521,9527],{"className":9519},[9520],"mop",[1719,9522,9416],{"className":9523,"style":9526},[9520,9524,9525],"op-symbol","small-op","position:relative;top:0em;",[1719,9528,9530],{"className":9529},[4049],[1719,9531,9533,9594],{"className":9532},[4053,4054],[1719,9534,9536,9591],{"className":9535},[4058],[1719,9537,9540,9570],{"className":9538,"style":9539},[4062],"height:0.954em;",[1719,9541,9543,9546],{"style":9542},"top:-2.4003em;margin-left:0em;margin-right:0.05em;",[1719,9544],{"className":9545,"style":4071},[4070],[1719,9547,9549],{"className":9548},[4075,4076,4077,4078],[1719,9550,9552,9555,9558,9561,9564],{"className":9551},[3978,4078],[1719,9553,3958],{"className":9554},[3978,3979,4078],[1719,9556,1552],{"className":9557},[2670,4078],[1719,9559,651],{"className":9560},[3978,4078],[1719,9562,9019],{"className":9563},[9106,4078],[1719,9565,9567],{"className":9566},[3978,6586,4078],[1719,9568,9429],{"className":9569},[3978,4078],[1719,9571,9573,9576],{"style":9572},"top:-3.2029em;margin-right:0.05em;",[1719,9574],{"className":9575,"style":4071},[4070],[1719,9577,9579],{"className":9578},[4075,4076,4077,4078],[1719,9580,9582,9585,9588],{"className":9581},[3978,4078],[1719,9583,3961],{"className":9584},[3978,3979,4078],[1719,9586,8861],{"className":9587},[4009,4078],[1719,9589,7930],{"className":9590},[3978,4078],[1719,9592,4090],{"className":9593},[4089],[1719,9595,9597],{"className":9596},[4058],[1719,9598,9601],{"className":9599,"style":9600},[4062],"height:0.4358em;",[1719,9602],{},[1719,9604],{"className":9605,"style":9110},[3984],[1719,9607,9609,9612],{"className":9608},[3978],[1719,9610,7930],{"className":9611},[3978],[1719,9613,9615],{"className":9614},[4049],[1719,9616,9618],{"className":9617},[4053],[1719,9619,9621],{"className":9620},[4058],[1719,9622,9625],{"className":9623,"style":9624},[4062],"height:0.8247em;",[1719,9626,9627,9630],{"style":6500},[1719,9628],{"className":9629,"style":4071},[4070],[1719,9631,9633],{"className":9632},[4075,4076,4077,4078],[1719,9634,3958],{"className":9635},[3978,3979,4078],[1719,9637,4136],{"className":9638},[4267],[1719,9640,9642,9645],{"className":9641},[3978],[1719,9643,9409],{"className":9644,"style":9500},[3978,3979],[1719,9646,9648],{"className":9647},[4049],[1719,9649,9651,9681],{"className":9650},[4053,4054],[1719,9652,9654,9678],{"className":9653},[4058],[1719,9655,9657],{"className":9656,"style":4063},[4062],[1719,9658,9660,9663],{"style":9659},"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;",[1719,9661],{"className":9662,"style":4071},[4070],[1719,9664,9666],{"className":9665},[4075,4076,4077,4078],[1719,9667,9669,9672,9675],{"className":9668},[3978,4078],[1719,9670,3958],{"className":9671},[3978,3979,4078],[1719,9673,8861],{"className":9674},[4009,4078],[1719,9676,655],{"className":9677},[3978,4078],[1719,9679,4090],{"className":9680},[4089],[1719,9682,9684],{"className":9683},[4058],[1719,9685,9687],{"className":9686,"style":5156},[4062],[1719,9688],{},[1719,9690],{"className":9691,"style":4005},[3984],[1719,9693,1966],{"className":9694},[4009],[1719,9696],{"className":9697,"style":4005},[3984],[1719,9699,9701,9705,9745,9748,9751],{"className":9700},[2661],[1719,9702],{"className":9703,"style":9704},[2665],"height:0.7778em;vertical-align:-0.1944em;",[1719,9706,9708,9711],{"className":9707},[3978],[1719,9709,9409],{"className":9710,"style":9500},[3978,3979],[1719,9712,9714],{"className":9713},[4049],[1719,9715,9717,9737],{"className":9716},[4053,4054],[1719,9718,9720,9734],{"className":9719},[4058],[1719,9721,9723],{"className":9722,"style":4063},[4062],[1719,9724,9725,9728],{"style":9659},[1719,9726],{"className":9727,"style":4071},[4070],[1719,9729,9731],{"className":9730},[4075,4076,4077,4078],[1719,9732,3958],{"className":9733},[3978,3979,4078],[1719,9735,4090],{"className":9736},[4089],[1719,9738,9740],{"className":9739},[4058],[1719,9741,9743],{"className":9742,"style":4097},[4062],[1719,9744],{},[1719,9746],{"className":9747,"style":4005},[3984],[1719,9749,8861],{"className":9750},[4009],[1719,9752],{"className":9753,"style":4005},[3984],[1719,9755,9757,9760,9763,9812],{"className":9756},[2661],[1719,9758],{"className":9759,"style":4263},[2665],[1719,9761,7930],{"className":9762},[3978],[1719,9764,9766,9769],{"className":9765},[3978],[1719,9767,9409],{"className":9768,"style":9500},[3978,3979],[1719,9770,9772],{"className":9771},[4049],[1719,9773,9775,9804],{"className":9774},[4053,4054],[1719,9776,9778,9801],{"className":9777},[4058],[1719,9779,9781],{"className":9780,"style":4063},[4062],[1719,9782,9783,9786],{"style":9659},[1719,9784],{"className":9785,"style":4071},[4070],[1719,9787,9789],{"className":9788},[4075,4076,4077,4078],[1719,9790,9792,9795,9798],{"className":9791},[3978,4078],[1719,9793,3958],{"className":9794},[3978,3979,4078],[1719,9796,1966],{"className":9797},[4009,4078],[1719,9799,655],{"className":9800},[3978,4078],[1719,9802,4090],{"className":9803},[4089],[1719,9805,9807],{"className":9806},[4058],[1719,9808,9810],{"className":9809,"style":5156},[4062],[1719,9811],{},[1719,9813,1569],{"className":9814},[4292],[274,9816,9817],{},[327,9818],{"alt":327,"src":9819},"\u002Fimg\u002FHDL\u002FFeiQilai1-55.png",[274,9821,9822,9823,9852,9853,10094,10095,3172,10335,10338],{},"每次操作要加\u002F减的值，就是被乘数 ",[1719,9824,9826,9839],{"className":9825},[2629],[1719,9827,9829],{"className":9828},[2633],[2635,9830,9831],{"xmlns":2637},[2639,9832,9833,9837],{},[2642,9834,9835],{},[3932,9836,675],{},[2649,9838,675],{"encoding":2651},[1719,9840,9842],{"className":9841,"ariaHidden":2657},[2656],[1719,9843,9845,9849],{"className":9844},[2661],[1719,9846],{"className":9847,"style":9848},[2665],"height:0.4306em;",[1719,9850,675],{"className":9851},[3978,3979]," 乘以括号里的那个因子 ",[1719,9854,9856,9908],{"className":9855},[2629],[1719,9857,9859],{"className":9858},[2633],[2635,9860,9861],{"xmlns":2637},[2639,9862,9863,9905],{},[2642,9864,9865,9867,9879,9881,9887,9889,9891,9903],{},[2645,9866,4136],{"stretchy":1128},[3949,9868,9869,9871],{},[3932,9870,9409],{},[2642,9872,9873,9875,9877],{},[3932,9874,3958],{},[2645,9876,8861],{},[5072,9878,655],{},[2645,9880,1966],{},[3949,9882,9883,9885],{},[3932,9884,9409],{},[3932,9886,3958],{},[2645,9888,8861],{},[5072,9890,7930],{},[3949,9892,9893,9895],{},[3932,9894,9409],{},[2642,9896,9897,9899,9901],{},[3932,9898,3958],{},[2645,9900,1966],{},[5072,9902,655],{},[2645,9904,1569],{"stretchy":1128},[2649,9906,9907],{"encoding":2651},"(y_{i-1} + y_i - 2y_{i+1})",[1719,9909,9911,9978,10033],{"className":9910,"ariaHidden":2657},[2656],[1719,9912,9914,9917,9920,9969,9972,9975],{"className":9913},[2661],[1719,9915],{"className":9916,"style":4263},[2665],[1719,9918,4136],{"className":9919},[4267],[1719,9921,9923,9926],{"className":9922},[3978],[1719,9924,9409],{"className":9925,"style":9500},[3978,3979],[1719,9927,9929],{"className":9928},[4049],[1719,9930,9932,9961],{"className":9931},[4053,4054],[1719,9933,9935,9958],{"className":9934},[4058],[1719,9936,9938],{"className":9937,"style":4063},[4062],[1719,9939,9940,9943],{"style":9659},[1719,9941],{"className":9942,"style":4071},[4070],[1719,9944,9946],{"className":9945},[4075,4076,4077,4078],[1719,9947,9949,9952,9955],{"className":9948},[3978,4078],[1719,9950,3958],{"className":9951},[3978,3979,4078],[1719,9953,8861],{"className":9954},[4009,4078],[1719,9956,655],{"className":9957},[3978,4078],[1719,9959,4090],{"className":9960},[4089],[1719,9962,9964],{"className":9963},[4058],[1719,9965,9967],{"className":9966,"style":5156},[4062],[1719,9968],{},[1719,9970],{"className":9971,"style":4005},[3984],[1719,9973,1966],{"className":9974},[4009],[1719,9976],{"className":9977,"style":4005},[3984],[1719,9979,9981,9984,10024,10027,10030],{"className":9980},[2661],[1719,9982],{"className":9983,"style":9704},[2665],[1719,9985,9987,9990],{"className":9986},[3978],[1719,9988,9409],{"className":9989,"style":9500},[3978,3979],[1719,9991,9993],{"className":9992},[4049],[1719,9994,9996,10016],{"className":9995},[4053,4054],[1719,9997,9999,10013],{"className":9998},[4058],[1719,10000,10002],{"className":10001,"style":4063},[4062],[1719,10003,10004,10007],{"style":9659},[1719,10005],{"className":10006,"style":4071},[4070],[1719,10008,10010],{"className":10009},[4075,4076,4077,4078],[1719,10011,3958],{"className":10012},[3978,3979,4078],[1719,10014,4090],{"className":10015},[4089],[1719,10017,10019],{"className":10018},[4058],[1719,10020,10022],{"className":10021,"style":4097},[4062],[1719,10023],{},[1719,10025],{"className":10026,"style":4005},[3984],[1719,10028,8861],{"className":10029},[4009],[1719,10031],{"className":10032,"style":4005},[3984],[1719,10034,10036,10039,10042,10091],{"className":10035},[2661],[1719,10037],{"className":10038,"style":4263},[2665],[1719,10040,7930],{"className":10041},[3978],[1719,10043,10045,10048],{"className":10044},[3978],[1719,10046,9409],{"className":10047,"style":9500},[3978,3979],[1719,10049,10051],{"className":10050},[4049],[1719,10052,10054,10083],{"className":10053},[4053,4054],[1719,10055,10057,10080],{"className":10056},[4058],[1719,10058,10060],{"className":10059,"style":4063},[4062],[1719,10061,10062,10065],{"style":9659},[1719,10063],{"className":10064,"style":4071},[4070],[1719,10066,10068],{"className":10067},[4075,4076,4077,4078],[1719,10069,10071,10074,10077],{"className":10070},[3978,4078],[1719,10072,3958],{"className":10073},[3978,3979,4078],[1719,10075,1966],{"className":10076},[4009,4078],[1719,10078,655],{"className":10079},[3978,4078],[1719,10081,4090],{"className":10082},[4089],[1719,10084,10086],{"className":10085},[4058],[1719,10087,10089],{"className":10088,"style":5156},[4062],[1719,10090],{},[1719,10092,1569],{"className":10093},[4292],"。而括号里的这个因子 ",[1719,10096,10098,10149],{"className":10097},[2629],[1719,10099,10101],{"className":10100},[2633],[2635,10102,10103],{"xmlns":2637},[2639,10104,10105,10147],{},[2642,10106,10107,10109,10121,10123,10129,10131,10133,10145],{},[2645,10108,4136],{"stretchy":1128},[3949,10110,10111,10113],{},[3932,10112,9409],{},[2642,10114,10115,10117,10119],{},[3932,10116,3958],{},[2645,10118,8861],{},[5072,10120,655],{},[2645,10122,1966],{},[3949,10124,10125,10127],{},[3932,10126,9409],{},[3932,10128,3958],{},[2645,10130,8861],{},[5072,10132,7930],{},[3949,10134,10135,10137],{},[3932,10136,9409],{},[2642,10138,10139,10141,10143],{},[3932,10140,3958],{},[2645,10142,1966],{},[5072,10144,655],{},[2645,10146,1569],{"stretchy":1128},[2649,10148,9907],{"encoding":2651},[1719,10150,10152,10219,10274],{"className":10151,"ariaHidden":2657},[2656],[1719,10153,10155,10158,10161,10210,10213,10216],{"className":10154},[2661],[1719,10156],{"className":10157,"style":4263},[2665],[1719,10159,4136],{"className":10160},[4267],[1719,10162,10164,10167],{"className":10163},[3978],[1719,10165,9409],{"className":10166,"style":9500},[3978,3979],[1719,10168,10170],{"className":10169},[4049],[1719,10171,10173,10202],{"className":10172},[4053,4054],[1719,10174,10176,10199],{"className":10175},[4058],[1719,10177,10179],{"className":10178,"style":4063},[4062],[1719,10180,10181,10184],{"style":9659},[1719,10182],{"className":10183,"style":4071},[4070],[1719,10185,10187],{"className":10186},[4075,4076,4077,4078],[1719,10188,10190,10193,10196],{"className":10189},[3978,4078],[1719,10191,3958],{"className":10192},[3978,3979,4078],[1719,10194,8861],{"className":10195},[4009,4078],[1719,10197,655],{"className":10198},[3978,4078],[1719,10200,4090],{"className":10201},[4089],[1719,10203,10205],{"className":10204},[4058],[1719,10206,10208],{"className":10207,"style":5156},[4062],[1719,10209],{},[1719,10211],{"className":10212,"style":4005},[3984],[1719,10214,1966],{"className":10215},[4009],[1719,10217],{"className":10218,"style":4005},[3984],[1719,10220,10222,10225,10265,10268,10271],{"className":10221},[2661],[1719,10223],{"className":10224,"style":9704},[2665],[1719,10226,10228,10231],{"className":10227},[3978],[1719,10229,9409],{"className":10230,"style":9500},[3978,3979],[1719,10232,10234],{"className":10233},[4049],[1719,10235,10237,10257],{"className":10236},[4053,4054],[1719,10238,10240,10254],{"className":10239},[4058],[1719,10241,10243],{"className":10242,"style":4063},[4062],[1719,10244,10245,10248],{"style":9659},[1719,10246],{"className":10247,"style":4071},[4070],[1719,10249,10251],{"className":10250},[4075,4076,4077,4078],[1719,10252,3958],{"className":10253},[3978,3979,4078],[1719,10255,4090],{"className":10256},[4089],[1719,10258,10260],{"className":10259},[4058],[1719,10261,10263],{"className":10262,"style":4097},[4062],[1719,10264],{},[1719,10266],{"className":10267,"style":4005},[3984],[1719,10269,8861],{"className":10270},[4009],[1719,10272],{"className":10273,"style":4005},[3984],[1719,10275,10277,10280,10283,10332],{"className":10276},[2661],[1719,10278],{"className":10279,"style":4263},[2665],[1719,10281,7930],{"className":10282},[3978],[1719,10284,10286,10289],{"className":10285},[3978],[1719,10287,9409],{"className":10288,"style":9500},[3978,3979],[1719,10290,10292],{"className":10291},[4049],[1719,10293,10295,10324],{"className":10294},[4053,4054],[1719,10296,10298,10321],{"className":10297},[4058],[1719,10299,10301],{"className":10300,"style":4063},[4062],[1719,10302,10303,10306],{"style":9659},[1719,10304],{"className":10305,"style":4071},[4070],[1719,10307,10309],{"className":10308},[4075,4076,4077,4078],[1719,10310,10312,10315,10318],{"className":10311},[3978,4078],[1719,10313,3958],{"className":10314},[3978,3979,4078],[1719,10316,1966],{"className":10317},[4009,4078],[1719,10319,655],{"className":10320},[3978,4078],[1719,10322,4090],{"className":10323},[4089],[1719,10325,10327],{"className":10326},[4058],[1719,10328,10330],{"className":10329,"style":5156},[4062],[1719,10331],{},[1719,10333,1569],{"className":10334},[4292],[339,10336,10337],{},"其取值只有 0、1、2 以及它们的负值"," (4)。",[274,10340,10341],{},[327,10342],{"alt":327,"src":10343},"\u002Fimg\u002FHDL\u002FFeiQilai1-56.png",[274,10345,10346,10347,564],{},"我们只需要观察乘数的3位，就可以决定这一步是 ",[1719,10348,10350,10384],{"className":10349},[2629],[1719,10351,10353],{"className":10352},[2633],[2635,10354,10355],{"xmlns":2637},[2639,10356,10357,10381],{},[2642,10358,10359,10361,10363,10365,10368,10370,10372,10375,10377,10379],{},[2645,10360,1966],{},[5072,10362,651],{},[2645,10364,9019],{"separator":2657},[2645,10366,10367],{},"±",[3932,10369,675],{},[2645,10371,9019],{"separator":2657},[6443,10373,10374],{},"还是 ",[2645,10376,10367],{},[5072,10378,7930],{},[3932,10380,675],{},[2649,10382,10383],{"encoding":2651},"+0, \\pm x, \\text{还是 } \\pm 2x",[1719,10385,10387,10439],{"className":10386,"ariaHidden":2657},[2656],[1719,10388,10390,10394,10397,10400,10403,10406,10409,10412,10415,10418,10430,10433,10436],{"className":10389},[2661],[1719,10391],{"className":10392,"style":10393},[2665],"height:0.8778em;vertical-align:-0.1944em;",[1719,10395,1966],{"className":10396},[3978],[1719,10398,651],{"className":10399},[3978],[1719,10401,9019],{"className":10402},[9106],[1719,10404],{"className":10405,"style":9110},[3984],[1719,10407,10367],{"className":10408},[3978],[1719,10410,675],{"className":10411},[3978,3979],[1719,10413,9019],{"className":10414},[9106],[1719,10416],{"className":10417,"style":9110},[3984],[1719,10419,10421,10426],{"className":10420},[3978,6586],[1719,10422,10425],{"className":10423},[3978,10424],"cjk_fallback","还是",[1719,10427,10429],{"className":10428},[3978]," ",[1719,10431],{"className":10432,"style":4005},[3984],[1719,10434,10367],{"className":10435},[4009],[1719,10437],{"className":10438,"style":4005},[3984],[1719,10440,10442,10445,10448],{"className":10441},[2661],[1719,10443],{"className":10444,"style":5749},[2665],[1719,10446,7930],{"className":10447},[3978],[1719,10449,675],{"className":10450},[3978,3979],[274,10452,10453],{},"然后开始计算：",[274,10455,10456,10459,10666],{},[339,10457,10458],{},"\"观察乘数的3位\" (",[1719,10460,10462,10507],{"className":10461},[2629],[1719,10463,10465],{"className":10464},[2633],[2635,10466,10467],{"xmlns":2637},[2639,10468,10469,10505],{},[2642,10470,10471,10483,10485,10491,10493],{},[3949,10472,10473,10475],{},[3932,10474,9008],{},[2642,10476,10477,10479,10481],{},[3932,10478,3958],{},[2645,10480,1966],{},[5072,10482,655],{},[2645,10484,9019],{"separator":2657},[3949,10486,10487,10489],{},[3932,10488,9008],{},[3932,10490,3958],{},[2645,10492,9019],{"separator":2657},[3949,10494,10495,10497],{},[3932,10496,9008],{},[2642,10498,10499,10501,10503],{},[3932,10500,3958],{},[2645,10502,8861],{},[5072,10504,655],{},[2649,10506,9042],{"encoding":2651},[1719,10508,10510],{"className":10509,"ariaHidden":2657},[2656],[1719,10511,10513,10516,10565,10568,10571,10611,10614,10617],{"className":10512},[2661],[1719,10514],{"className":10515,"style":9052},[2665],[1719,10517,10519,10522],{"className":10518},[3978],[1719,10520,9008],{"className":10521,"style":4005},[3978,3979],[1719,10523,10525],{"className":10524},[4049],[1719,10526,10528,10557],{"className":10527},[4053,4054],[1719,10529,10531,10554],{"className":10530},[4058],[1719,10532,10534],{"className":10533,"style":4063},[4062],[1719,10535,10536,10539],{"style":9073},[1719,10537],{"className":10538,"style":4071},[4070],[1719,10540,10542],{"className":10541},[4075,4076,4077,4078],[1719,10543,10545,10548,10551],{"className":10544},[3978,4078],[1719,10546,3958],{"className":10547},[3978,3979,4078],[1719,10549,1966],{"className":10550},[4009,4078],[1719,10552,655],{"className":10553},[3978,4078],[1719,10555,4090],{"className":10556},[4089],[1719,10558,10560],{"className":10559},[4058],[1719,10561,10563],{"className":10562,"style":5156},[4062],[1719,10564],{},[1719,10566,9019],{"className":10567},[9106],[1719,10569],{"className":10570,"style":9110},[3984],[1719,10572,10574,10577],{"className":10573},[3978],[1719,10575,9008],{"className":10576,"style":4005},[3978,3979],[1719,10578,10580],{"className":10579},[4049],[1719,10581,10583,10603],{"className":10582},[4053,4054],[1719,10584,10586,10600],{"className":10585},[4058],[1719,10587,10589],{"className":10588,"style":4063},[4062],[1719,10590,10591,10594],{"style":9073},[1719,10592],{"className":10593,"style":4071},[4070],[1719,10595,10597],{"className":10596},[4075,4076,4077,4078],[1719,10598,3958],{"className":10599},[3978,3979,4078],[1719,10601,4090],{"className":10602},[4089],[1719,10604,10606],{"className":10605},[4058],[1719,10607,10609],{"className":10608,"style":4097},[4062],[1719,10610],{},[1719,10612,9019],{"className":10613},[9106],[1719,10615],{"className":10616,"style":9110},[3984],[1719,10618,10620,10623],{"className":10619},[3978],[1719,10621,9008],{"className":10622,"style":4005},[3978,3979],[1719,10624,10626],{"className":10625},[4049],[1719,10627,10629,10658],{"className":10628},[4053,4054],[1719,10630,10632,10655],{"className":10631},[4058],[1719,10633,10635],{"className":10634,"style":4063},[4062],[1719,10636,10637,10640],{"style":9073},[1719,10638],{"className":10639,"style":4071},[4070],[1719,10641,10643],{"className":10642},[4075,4076,4077,4078],[1719,10644,10646,10649,10652],{"className":10645},[3978,4078],[1719,10647,3958],{"className":10648},[3978,3979,4078],[1719,10650,8861],{"className":10651},[4009,4078],[1719,10653,655],{"className":10654},[3978,4078],[1719,10656,4090],{"className":10657},[4089],[1719,10659,10661],{"className":10660},[4058],[1719,10662,10664],{"className":10663,"style":5156},[4062],[1719,10665],{},[339,10667,1569],{},[356,10669,10670,10680,10765,10797,10824,10852,10970],{},[359,10671,10672,10675,10676,10679],{},[339,10673,10674],{},"硬件实现："," 这3位被送入 ",[339,10677,10678],{},"\"译码\"","模块。",[359,10681,10682,10685,10686,399,10689,10763],{},[339,10683,10684],{},"功能："," “译码”模块就是硬件化（硬连线）的“Booth动作”查找表。它是整个操作的“大脑”。\n",[339,10687,10688],{},"\"决定是 +0,",[1719,10690,10692,10718],{"className":10691},[2629],[1719,10693,10695],{"className":10694},[2633],[2635,10696,10697],{"xmlns":2637},[2639,10698,10699,10715],{},[2642,10700,10701,10703,10705,10707,10709,10711,10713],{},[2645,10702,10367],{},[3932,10704,675],{},[2645,10706,9019],{"separator":2657},[6443,10708,10425],{},[2645,10710,10367],{},[5072,10712,7930],{},[3932,10714,675],{},[2649,10716,10717],{"encoding":2651},"\\pm x, 还是 \\pm 2x",[1719,10719,10721,10751],{"className":10720,"ariaHidden":2657},[2656],[1719,10722,10724,10727,10730,10733,10736,10739,10742,10745,10748],{"className":10723},[2661],[1719,10725],{"className":10726,"style":10393},[2665],[1719,10728,10367],{"className":10729},[3978],[1719,10731,675],{"className":10732},[3978,3979],[1719,10734,9019],{"className":10735},[9106],[1719,10737],{"className":10738,"style":9110},[3984],[1719,10740,10425],{"className":10741},[3978,10424],[1719,10743],{"className":10744,"style":4005},[3984],[1719,10746,10367],{"className":10747},[4009],[1719,10749],{"className":10750,"style":4005},[3984],[1719,10752,10754,10757,10760],{"className":10753},[2661],[1719,10755],{"className":10756,"style":5749},[2665],[1719,10758,7930],{"className":10759},[3978],[1719,10761,675],{"className":10762},[3978,3979],[339,10764,7905],{},[359,10766,10767,10769,10770,513,10773],{},[339,10768,10674],{}," “译码”模块在“观察”完3位后，会输出",[339,10771,10772],{},"两个控制信号",[724,10774,10775,10785],{},[359,10776,10777,10778,10780,10781,10784],{},"一个 ",[362,10779,1116],{"code":1116}," 信号 发给 ",[339,10782,10783],{},"\"多路选择器\""," (Mux)。",[359,10786,10777,10787,10780,10790,10793,10794],{},[362,10788,10789],{"code":10789},"op",[339,10791,10792],{},"\"加减器\""," (Add\u002FSubtractor)。\n",[339,10795,10796],{},"执行操作",[359,10798,10799,10802],{},[339,10800,10801],{},"第 3a 步 (准备数据)：",[356,10803,10804,10814],{},[359,10805,10806,10807,1762,10809,1762,10811,564],{},"“多路选择器” (Mux) 已经准备好了三个选项：",[362,10808,651],{"code":651},[362,10810,675],{"code":675},[362,10812,10813],{"code":10813},"2x",[359,10815,10816,10818,10819,10823],{},[362,10817,1116],{"code":1116}," 信号会告诉 Mux：“你应该选择 ",[339,10820,10821],{},[362,10822,10813],{"code":10813}," 并把它传给加减器。”",[359,10825,10826,10829],{},[339,10827,10828],{},"第 3b 步 (执行计算)：",[356,10830,10831,10840],{},[359,10832,10833,10834,10837,10838,564],{},"\"加减器\" 接收两个输入：一个是来自上一级的",[339,10835,10836],{},"累计结果 (AP)","，另一个是 Mux 刚刚传来的 ",[362,10839,10813],{"code":10813},[359,10841,10842,10844,10845,10848,10849],{},[362,10843,10789],{"code":10789}," 信号会告诉加减器：“嘿，根据译码结果，你应该执行",[339,10846,10847],{},"加法","（如果是-2x，就执行减法）。”\n",[339,10850,10851],{},"累计和移位",[359,10853,10854,10857,10858,564],{},[339,10855,10856],{},"\"AP 累计\"："," 加减器的计算结果，就是新的“部分积” ",[1719,10859,10861,10895],{"className":10860},[2629],[1719,10862,10864],{"className":10863},[2633],[2635,10865,10866],{"xmlns":2637},[2639,10867,10868,10892],{},[2642,10869,10870,10872],{},[3932,10871,3939],{},[3949,10873,10874,10876],{},[3932,10875,4789],{},[2642,10877,10878,10880,10882,10884,10886,10888,10890],{},[2645,10879,4136],{"stretchy":1128},[3932,10881,3958],{},[2645,10883,1966],{},[5072,10885,7930],{},[2645,10887,1569],{"stretchy":1128},[3932,10889,2599],{"mathvariant":5434},[5072,10891,7930],{},[2649,10893,10894],{"encoding":2651},"AP_{(i+2)\u002F2}",[1719,10896,10898],{"className":10897,"ariaHidden":2657},[2656],[1719,10899,10901,10905,10908],{"className":10900},[2661],[1719,10902],{"className":10903,"style":10904},[2665],"height:1.0385em;vertical-align:-0.3552em;",[1719,10906,3939],{"className":10907},[3978,3979],[1719,10909,10911,10914],{"className":10910},[3978],[1719,10912,4789],{"className":10913,"style":4810},[3978,3979],[1719,10915,10917],{"className":10916},[4049],[1719,10918,10920,10961],{"className":10919},[4053,4054],[1719,10921,10923,10958],{"className":10922},[4058],[1719,10924,10927],{"className":10925,"style":10926},[4062],"height:0.3448em;",[1719,10928,10930,10933],{"style":10929},"top:-2.5198em;margin-left:-0.1389em;margin-right:0.05em;",[1719,10931],{"className":10932,"style":4071},[4070],[1719,10934,10936],{"className":10935},[4075,4076,4077,4078],[1719,10937,10939,10942,10945,10948,10951,10954],{"className":10938},[3978,4078],[1719,10940,4136],{"className":10941},[4267,4078],[1719,10943,3958],{"className":10944},[3978,3979,4078],[1719,10946,1966],{"className":10947},[4009,4078],[1719,10949,7930],{"className":10950},[3978,4078],[1719,10952,1569],{"className":10953},[4292,4078],[1719,10955,10957],{"className":10956},[3978,4078],"\u002F2",[1719,10959,4090],{"className":10960},[4089],[1719,10962,10964],{"className":10963},[4058],[1719,10965,10968],{"className":10966,"style":10967},[4062],"height:0.3552em;",[1719,10969],{},[359,10971,10972,10975,10976,10979,10980],{},[339,10973,10974],{},"\"左移2位\"："," 整个结构会",[339,10977,10978],{},"级联","（串联）起来。如图所示，一个单元的输出会作为下一个单元的输入。这个移位是为了在下一步处理乘数的下2位。\n",[327,10981],{"alt":327,"src":10982},"\u002Fimg\u002FHDL\u002FFeiQilai1-57.png",[274,10984,1653,10985,10988,10989,10992,10993],{},[339,10986,10987],{},"硬件面积几乎不变"," 的情况下，通过让每一步的逻辑“略微复杂”一点，换来了",[339,10990,10991],{},"计算步数减半","，从而使",[339,10994,10995],{},"乘法的总时间缩短了将近一半",[960,10997,10999],{"id":10998},"wallace乘法器","Wallace乘法器",[274,11001,11002],{},[327,11003],{"alt":327,"src":11004},"\u002Fimg\u002FHDL\u002FFeiQilai1-58.png",[274,11006,11007],{},[339,11008,11009],{},"这个wallace乘法器其实就是用了阵列乘法类似的方式（部分积），但是用wallace树来优化这个过程中的加法",[960,11011,11012],{"id":11012},"除法",[274,11014,11015],{},"流程图",[274,11017,11018],{},[327,11019],{"alt":327,"src":11020},"\u002Fimg\u002FHDL\u002FFeiQilai1-59.png",[274,11022,11023],{},"就是在模拟长除法",[2419,11025],{},[331,11027,11029],{"id":11028},"浮点编码格式包括非规范值浮点处理异常向偶舍入",[277,11030,11031,11032,11035],{},"浮点编码格式",[1719,11033,11034],{},"包括非规范值","、浮点处理异常、向偶舍入",[960,11037,11039],{"id":11038},"浮点编码格式-含非规范值","浮点编码格式 (含非规范值)",[274,11041,11042],{},"IEEE 754标准将一个浮点数分为三个部分：符号位 (s)、指数 (exp) 和尾数 (frac)。",[274,11044,11045],{},[362,11046,11047],{"code":11047},"VLecture13_Float_Point_Standard_-_2025.pdf",[274,11049,11050],{},"基本编码",[356,11052,11053,11059,11065],{},[359,11054,11055,11058],{},[339,11056,11057],{},"s (符号位):"," 1位，决定正负。",[359,11060,11061,11064],{},[339,11062,11063],{},"exp (指数):"," 8位 (单精度) 或 11位 (双精度)。",[359,11066,11067,11070,11071,11074],{},[339,11068,11069],{},"frac (尾数):"," 23位 (单精度) 或 52位 (双精度)。\n根据 ",[362,11072,11073],{"code":11073},"exp"," 字段的值，浮点数被分为三类：规范值、非规范值和特殊值。",[274,11076,11077],{},[339,11078,11079],{},"A. \"规范\"数值 (Normalized Values)",[274,11081,11082],{},"这是最常见的浮点数形式。",[356,11084,11085,11100,11207],{},[359,11086,11087,399,11090,11092,11093,11096,11097,2098],{},[339,11088,11089],{},"条件：",[362,11091,11073],{"code":11073}," 字段既不是全0 (",[362,11094,11095],{"code":11095},"000...0",")，也不是全1 (",[362,11098,11099],{"code":11099},"111...1",[359,11101,11102,11105],{},[339,11103,11104],{},"指数 (E)：",[356,11106,11107,11114,11197],{},[359,11108,11109,11110,11113],{},"指数采用",[339,11111,11112],{},"偏置值 (Biased)"," 编码。",[359,11115,11116,564],{},[1719,11117,11119,11143],{"className":11118},[2629],[1719,11120,11122],{"className":11121},[2633],[2635,11123,11124],{"xmlns":2637},[2639,11125,11126,11140],{},[2642,11127,11128,11131,11133,11135,11137],{},[3932,11129,11130],{},"E",[2645,11132,1552],{},[6443,11134,11073],{},[2645,11136,8861],{},[6443,11138,11139],{},"Bias",[2649,11141,11142],{"encoding":2651},"E = \\text{exp} - \\text{Bias}",[1719,11144,11146,11164,11185],{"className":11145,"ariaHidden":2657},[2656],[1719,11147,11149,11152,11155,11158,11161],{"className":11148},[2661],[1719,11150],{"className":11151,"style":3974},[2665],[1719,11153,11130],{"className":11154,"style":3980},[3978,3979],[1719,11156],{"className":11157,"style":3985},[3984],[1719,11159,1552],{"className":11160},[2670],[1719,11162],{"className":11163,"style":3985},[3984],[1719,11165,11167,11170,11176,11179,11182],{"className":11166},[2661],[1719,11168],{"className":11169,"style":9704},[2665],[1719,11171,11173],{"className":11172},[3978,6586],[1719,11174,11073],{"className":11175},[3978],[1719,11177],{"className":11178,"style":4005},[3984],[1719,11180,8861],{"className":11181},[4009],[1719,11183],{"className":11184,"style":4005},[3984],[1719,11186,11188,11191],{"className":11187},[2661],[1719,11189],{"className":11190,"style":3974},[2665],[1719,11192,11194],{"className":11193},[3978,6586],[1719,11195,11139],{"className":11196},[3978],[359,11198,11199,11200,11203,11204,564],{},"单精度 ",[362,11201,11202],{"code":11202},"Bias = 127","；双精度 ",[362,11205,11206],{"code":11206},"Bias = 1023",[359,11208,11209,11212],{},[339,11210,11211],{},"尾数 (M)：",[356,11213,11214,11217],{},[359,11215,11216],{},"尾数部分隐含了一个前导的 \"1\"。",[359,11218,11219,11281,11282,11284,11285,11288,11289,11318,11319],{},[1719,11220,11222,11245],{"className":11221},[2629],[1719,11223,11225],{"className":11224},[2633],[2635,11226,11227],{"xmlns":2637},[2639,11228,11229,11242],{},[2642,11230,11231,11234,11236,11239],{},[3932,11232,11233],{},"M",[2645,11235,1552],{},[5072,11237,11238],{},"1.",[6443,11240,11241],{},"frac",[2649,11243,11244],{"encoding":2651},"M = 1.\\text{frac}",[1719,11246,11248,11266],{"className":11247,"ariaHidden":2657},[2656],[1719,11249,11251,11254,11257,11260,11263],{"className":11250},[2661],[1719,11252],{"className":11253,"style":3974},[2665],[1719,11255,11233],{"className":11256,"style":8887},[3978,3979],[1719,11258],{"className":11259,"style":3985},[3984],[1719,11261,1552],{"className":11262},[2670],[1719,11264],{"className":11265,"style":3985},[3984],[1719,11267,11269,11272,11275],{"className":11268},[2661],[1719,11270],{"className":11271,"style":7381},[2665],[1719,11273,11238],{"className":11274},[3978],[1719,11276,11278],{"className":11277},[3978,6586],[1719,11279,11241],{"className":11280},[3978]," (例如，如果 ",[362,11283,11241],{"code":11241}," 是 ",[362,11286,11287],{"code":11287},"101...","，则尾数M为 ",[1719,11290,11292,11306],{"className":11291},[2629],[1719,11293,11295],{"className":11294},[2633],[2635,11296,11297],{"xmlns":2637},[2639,11298,11299,11304],{},[2642,11300,11301],{},[5072,11302,11303],{},"1.101...",[2649,11305,11303],{"encoding":2651},[1719,11307,11309],{"className":11308,"ariaHidden":2657},[2656],[1719,11310,11312,11315],{"className":11311},[2661],[1719,11313],{"className":11314,"style":5749},[2665],[1719,11316,11303],{"className":11317},[3978],") 。\n",[339,11320,11321],{},"B. \"非规范\"数值 (Denormalized Values)",[274,11323,11324],{},"非规范值用于表示非常接近于0的数，以实现“逐渐下溢” (gradual underflow)。",[356,11326,11327,11336,11518],{},[359,11328,11329,399,11331,11333,11334,2098],{},[339,11330,11089],{},[362,11332,11073],{"code":11073}," 字段为全0 (",[362,11335,11095],{"code":11095},[359,11337,11338,11340],{},[339,11339,11104],{},[356,11341,11342,11404],{},[359,11343,11344,11345,564],{},"指数E被固定为 ",[1719,11346,11348,11368],{"className":11347},[2629],[1719,11349,11351],{"className":11350},[2633],[2635,11352,11353],{"xmlns":2637},[2639,11354,11355,11365],{},[2642,11356,11357,11359,11361,11363],{},[2645,11358,8861],{},[6443,11360,11139],{},[2645,11362,1966],{},[5072,11364,655],{},[2649,11366,11367],{"encoding":2651},"-\\text{Bias} + 1",[1719,11369,11371,11395],{"className":11370,"ariaHidden":2657},[2656],[1719,11372,11374,11377,11380,11386,11389,11392],{"className":11373},[2661],[1719,11375],{"className":11376,"style":3998},[2665],[1719,11378,8861],{"className":11379},[3978],[1719,11381,11383],{"className":11382},[3978,6586],[1719,11384,11139],{"className":11385},[3978],[1719,11387],{"className":11388,"style":4005},[3984],[1719,11390,1966],{"className":11391},[4009],[1719,11393],{"className":11394,"style":4005},[3984],[1719,11396,11398,11401],{"className":11397},[2661],[1719,11399],{"className":11400,"style":5749},[2665],[1719,11402,655],{"className":11403},[3978],[359,11405,11406,11407,11410,11411,1101,11514,11517],{},"单精度中，",[362,11408,11409],{"code":11409},"exp=1"," 时 ",[1719,11412,11414,11444],{"className":11413},[2629],[1719,11415,11417],{"className":11416},[2633],[2635,11418,11419],{"xmlns":2637},[2639,11420,11421,11441],{},[2642,11422,11423,11425,11427,11429,11431,11434,11436,11438],{},[3932,11424,11130],{},[2645,11426,1552],{},[5072,11428,655],{},[2645,11430,8861],{},[5072,11432,11433],{},"127",[2645,11435,1552],{},[2645,11437,8861],{},[5072,11439,11440],{},"126",[2649,11442,11443],{"encoding":2651},"E = 1 - 127 = -126",[1719,11445,11447,11465,11484,11502],{"className":11446,"ariaHidden":2657},[2656],[1719,11448,11450,11453,11456,11459,11462],{"className":11449},[2661],[1719,11451],{"className":11452,"style":3974},[2665],[1719,11454,11130],{"className":11455,"style":3980},[3978,3979],[1719,11457],{"className":11458,"style":3985},[3984],[1719,11460,1552],{"className":11461},[2670],[1719,11463],{"className":11464,"style":3985},[3984],[1719,11466,11468,11472,11475,11478,11481],{"className":11467},[2661],[1719,11469],{"className":11470,"style":11471},[2665],"height:0.7278em;vertical-align:-0.0833em;",[1719,11473,655],{"className":11474},[3978],[1719,11476],{"className":11477,"style":4005},[3984],[1719,11479,8861],{"className":11480},[4009],[1719,11482],{"className":11483,"style":4005},[3984],[1719,11485,11487,11490,11493,11496,11499],{"className":11486},[2661],[1719,11488],{"className":11489,"style":5749},[2665],[1719,11491,11433],{"className":11492},[3978],[1719,11494],{"className":11495,"style":3985},[3984],[1719,11497,1552],{"className":11498},[2670],[1719,11500],{"className":11501,"style":3985},[3984],[1719,11503,11505,11508,11511],{"className":11504},[2661],[1719,11506],{"className":11507,"style":11471},[2665],[1719,11509,8861],{"className":11510},[3978],[1719,11512,11440],{"className":11513},[3978],[362,11515,11516],{"code":11516},"exp=0"," 时E也等于-126，保持了指数的连续性。",[359,11519,11520,11522],{},[339,11521,11211],{},[356,11523,11524,11531],{},[359,11525,11526,11527,11530],{},"尾数",[339,11528,11529],{},"不再隐含","前导的 \"1\"，而是隐含 \"0\"。",[359,11532,11533,2116,11593],{},[1719,11534,11536,11557],{"className":11535},[2629],[1719,11537,11539],{"className":11538},[2633],[2635,11540,11541],{"xmlns":2637},[2639,11542,11543,11554],{},[2642,11544,11545,11547,11549,11552],{},[3932,11546,11233],{},[2645,11548,1552],{},[5072,11550,11551],{},"0.",[6443,11553,11241],{},[2649,11555,11556],{"encoding":2651},"M = 0.\\text{frac}",[1719,11558,11560,11578],{"className":11559,"ariaHidden":2657},[2656],[1719,11561,11563,11566,11569,11572,11575],{"className":11562},[2661],[1719,11564],{"className":11565,"style":3974},[2665],[1719,11567,11233],{"className":11568,"style":8887},[3978,3979],[1719,11570],{"className":11571,"style":3985},[3984],[1719,11573,1552],{"className":11574},[2670],[1719,11576],{"className":11577,"style":3985},[3984],[1719,11579,11581,11584,11587],{"className":11580},[2661],[1719,11582],{"className":11583,"style":7381},[2665],[1719,11585,11551],{"className":11586},[3978],[1719,11588,11590],{"className":11589},[3978,6586],[1719,11591,11241],{"className":11592},[3978],[339,11594,11595],{},"非规范值的两种情况：",[724,11597,11598,11616],{},[359,11599,11600,11603,11604,11607,11608,11611,11612,11615],{},[339,11601,11602],{},"零 (Zero)："," 当 ",[362,11605,11606],{"code":11606},"exp = 000...0"," 且 ",[362,11609,11610],{"code":11610},"frac = 000...0"," 时。注意，根据符号位 ",[362,11613,11614],{"code":11614},"s","，存在+0和-0。",[359,11617,11618,11603,11621,11607,11623,399,11625,11701,11702],{},[339,11619,11620],{},"非零 (Subnormal)：",[362,11622,11606],{"code":11606},[362,11624,11241],{"code":11241},[1719,11626,11628,11644],{"className":11627},[2629],[1719,11629,11631],{"className":11630},[2633],[2635,11632,11633],{"xmlns":2637},[2639,11634,11635,11641],{},[2642,11636,11637,11639],{},[2645,11638,5435],{"mathvariant":5434},[5072,11640,11095],{},[2649,11642,11643],{"encoding":2651},"\\neq 000...0",[1719,11645,11647,11692],{"className":11646,"ariaHidden":2657},[2656],[1719,11648,11650,11653,11689],{"className":11649},[2661],[1719,11651],{"className":11652,"style":5454},[2665],[1719,11654,11656,11683,11686],{"className":11655},[2670],[1719,11657,11659],{"className":11658},[2670],[1719,11660,11662],{"className":11661},[3978,5507],[1719,11663,11665],{"className":11664},[5511],[1719,11666,11668,11671,11680],{"className":11667},[5515],[1719,11669],{"className":11670,"style":5454},[2665],[1719,11672,11674],{"className":11673},[5522],[1719,11675,11677],{"className":11676},[3978],[1719,11678,5529],{"className":11679},[2670],[1719,11681],{"className":11682},[5533],[1719,11684],{"className":11685},[3984,5537],[1719,11687,1552],{"className":11688},[2670],[1719,11690],{"className":11691,"style":3985},[3984],[1719,11693,11695,11698],{"className":11694},[2661],[1719,11696],{"className":11697,"style":5749},[2665],[1719,11699,11095],{"className":11700},[3978]," 时。\n",[339,11703,11704],{},"C. \"特殊值\" (Special Values)",[356,11706,11707,11716],{},[359,11708,11709,399,11711,11713,11714,2098],{},[339,11710,11089],{},[362,11712,11073],{"code":11073}," 字段为全1 (",[362,11715,11099],{"code":11099},[359,11717,11718,11721],{},[339,11719,11720],{},"两种情况：",[724,11722,11723,11807],{},[359,11724,11725,11603,11728,11607,11731,11733,11734,11736,11737,1196,11773,564],{},[339,11726,11727],{},"无穷大 (Infinity, inf)：",[362,11729,11730],{"code":11730},"exp = 111...1",[362,11732,11610],{"code":11610}," 时。用于表示操作上溢 (overflow) 。根据符号位 ",[362,11735,11614],{"code":11614}," 区分 ",[1719,11738,11740,11757],{"className":11739},[2629],[1719,11741,11743],{"className":11742},[2633],[2635,11744,11745],{"xmlns":2637},[2639,11746,11747,11754],{},[2642,11748,11749,11751],{},[2645,11750,1966],{},[3932,11752,11753],{"mathvariant":5434},"∞",[2649,11755,11756],{"encoding":2651},"+\\infty",[1719,11758,11760],{"className":11759,"ariaHidden":2657},[2656],[1719,11761,11763,11767,11770],{"className":11762},[2661],[1719,11764],{"className":11765,"style":11766},[2665],"height:0.6667em;vertical-align:-0.0833em;",[1719,11768,1966],{"className":11769},[3978],[1719,11771,11753],{"className":11772},[3978],[1719,11774,11776,11792],{"className":11775},[2629],[1719,11777,11779],{"className":11778},[2633],[2635,11780,11781],{"xmlns":2637},[2639,11782,11783,11789],{},[2642,11784,11785,11787],{},[2645,11786,8861],{},[3932,11788,11753],{"mathvariant":5434},[2649,11790,11791],{"encoding":2651},"-\\infty",[1719,11793,11795],{"className":11794,"ariaHidden":2657},[2656],[1719,11796,11798,11801,11804],{"className":11797},[2661],[1719,11799],{"className":11800,"style":11766},[2665],[1719,11802,8861],{"className":11803},[3978],[1719,11805,11753],{"className":11806},[3978],[359,11808,11809,11603,11812,11607,11814,11817,11818,1120,11920,1101],{},[339,11810,11811],{},"NaN (Not-a-Number)：",[362,11813,11730],{"code":11730},[362,11815,11816],{"code":11816},"frac \\neq 000...0"," 时。用于表示无法确定的数值，例如 ",[1719,11819,11821,11842],{"className":11820},[2629],[1719,11822,11824],{"className":11823},[2633],[2635,11825,11826],{"xmlns":2637},[2639,11827,11828,11839],{},[2642,11829,11830],{},[11831,11832,11833],"msqrt",{},[2642,11834,11835,11837],{},[2645,11836,8861],{},[5072,11838,655],{},[2649,11840,11841],{"encoding":2651},"\\sqrt{-1}",[1719,11843,11845],{"className":11844,"ariaHidden":2657},[2656],[1719,11846,11848,11852],{"className":11847},[2661],[1719,11849],{"className":11850,"style":11851},[2665],"height:1.04em;vertical-align:-0.1744em;",[1719,11853,11856],{"className":11854},[3978,11855],"sqrt",[1719,11857,11859,11911],{"className":11858},[4053,4054],[1719,11860,11862,11908],{"className":11861},[4058],[1719,11863,11866,11885],{"className":11864,"style":11865},[4062],"height:0.8656em;",[1719,11867,11871,11875],{"className":11868,"style":11870},[11869],"svg-align","top:-3em;",[1719,11872],{"className":11873,"style":11874},[4070],"height:3em;",[1719,11876,11879,11882],{"className":11877,"style":11878},[3978],"padding-left:0.833em;",[1719,11880,8861],{"className":11881},[3978],[1719,11883,655],{"className":11884},[3978],[1719,11886,11888,11891],{"style":11887},"top:-2.8256em;",[1719,11889],{"className":11890,"style":11874},[4070],[1719,11892,11896],{"className":11893,"style":11895},[11894],"hide-tail","min-width:0.853em;height:1.08em;",[11897,11898,11904],"svg",{"xmlns":11899,"width":11900,"height":11901,"viewBox":11902,"preserveAspectRatio":11903},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","1.08em","0 0 400000 1080","xMinYMin slice",[11905,11906],"path",{"d":11907},"M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z",[1719,11909,4090],{"className":11910},[4089],[1719,11912,11914],{"className":11913},[4058],[1719,11915,11918],{"className":11916,"style":11917},[4062],"height:0.1744em;",[1719,11919],{},[1719,11921,11923,11941],{"className":11922},[2629],[1719,11924,11926],{"className":11925},[2633],[2635,11927,11928],{"xmlns":2637},[2639,11929,11930,11938],{},[2642,11931,11932,11934,11936],{},[3932,11933,11753],{"mathvariant":5434},[2645,11935,8861],{},[3932,11937,11753],{"mathvariant":5434},[2649,11939,11940],{"encoding":2651},"\\infty - \\infty",[1719,11942,11944,11962],{"className":11943,"ariaHidden":2657},[2656],[1719,11945,11947,11950,11953,11956,11959],{"className":11946},[2661],[1719,11948],{"className":11949,"style":11766},[2665],[1719,11951,11753],{"className":11952},[3978],[1719,11954],{"className":11955,"style":4005},[3984],[1719,11957,8861],{"className":11958},[4009],[1719,11960],{"className":11961,"style":4005},[3984],[1719,11963,11965,11968],{"className":11964},[2661],[1719,11966],{"className":11967,"style":9848},[2665],[1719,11969,11753],{"className":11970},[3978],[331,11972,11973],{"id":11973},"浮点处理异常",[274,11975,11976],{},"浮点操作可能产生五种异常类型：",[724,11978,11979,12032,12051,12074,12096],{},[359,11980,11981,11984],{},[339,11982,11983],{},"非法操作 (Invalid Operation)",[356,11985,11986,11989],{},[359,11987,11988],{},"当操作本身无意义时触发。",[359,11990,11991,11994],{},[339,11992,11993],{},"示例：",[356,11995,11996,11999,12004,12009,12017,12022],{},[359,11997,11998],{},"对NaN进行操作。",[359,12000,12001,564],{},[362,12002,12003],{"code":12003},"(+inf) + (-inf)",[359,12005,12006],{},[362,12007,12008],{"code":12008},"0 * inf",[359,12010,12011,1120,12014,564],{},[362,12012,12013],{"code":12013},"0\u002F0",[362,12015,12016],{"code":12016},"inf\u002Finf",[359,12018,12019,564],{},[362,12020,12021],{"code":12021},"sqrt(-1)",[359,12023,12024,12025,1120,12028,12031],{},"将 ",[362,12026,12027],{"code":12027},"inf",[362,12029,12030],{"code":12030},"NaN"," 转换为整数时。",[359,12033,12034,12037],{},[339,12035,12036],{},"被0除 (Divide by Zero)",[356,12038,12039,12042],{},[359,12040,12041],{},"当除数为0，且被除数为一个确定的、非0的数时触发。",[359,12043,12044,12045,1120,12048,2098],{},"结果应被置为有符号的无穷大 (",[362,12046,12047],{"code":12047},"+inf",[362,12049,12050],{"code":12050},"-inf",[359,12052,12053,12056],{},[339,12054,12055],{},"上溢 (Overflow)",[356,12057,12058,12065],{},[359,12059,12060,12061,12064],{},"当浮点操作结果（在舍入后）的大小超过了其格式所能表示的",[339,12062,12063],{},"最大规范值","时触发。",[359,12066,12067,12068,12070,12071,12073],{},"结果会根据舍入模式被确定为 ",[362,12069,12047],{"code":12047},"、",[362,12072,12050],{"code":12050}," 或最大规范值。",[359,12075,12076,12079],{},[339,12077,12078],{},"下溢 (Underflow)",[356,12080,12081,12087],{},[359,12082,12083,12084,12064],{},"当浮点操作结果（在舍入后）小于",[339,12085,12086],{},"最小的非规范值",[359,12088,12089,12090,1120,12093,564],{},"结果通常被置为 ",[362,12091,12092],{"code":12092},"+0",[362,12094,12095],{"code":12095},"-0",[359,12097,12098,12101],{},[339,12099,12100],{},"不精确 (Inexact)",[356,12102,12103,12106],{},[359,12104,12105],{},"当舍入丢失了非0的低位时触发。",[359,12107,12108],{},"或者当发生溢出时也会触发。",[331,12110,12112],{"id":12111},"向偶舍入-round-to-even","向偶舍入 (Round to Even)",[274,12114,12115],{},"\"向偶舍入\"是IEEE 754的默认舍入模式。它也被称为\"向近舍入\" (Round to Nearest)。",[274,12117,12118],{},[339,12119,12120],{},"基本原则",[274,12122,12123,12124,12127],{},"\"向偶舍入\"的目标是将结果舍入到最接近的可表示值。关键在于如何处理",[339,12125,12126],{},"正好在两个可表示值正中间 (half-way)"," 的情况。",[356,12129,12130,12140],{},[359,12131,12132,12135,12136,12139],{},[339,12133,12134],{},"规则："," 如果一个数正好处于中间，它将被舍入到使其",[339,12137,12138],{},"最低有效位 (LSB) 为偶数 (即 0)"," 的那个值。",[359,12141,12142,12145,12146],{},[339,12143,12144],{},"目的："," 这种方法可以避免在大量计算中系统性地向上或向下舍入，从而减少累积误差。\n",[339,12147,12148],{},"十进制示例",[274,12150,12151],{},"假设舍入到小数点后两位：",[356,12153,12154,12164,12173,12188],{},[359,12155,12156,12159,12160,12163],{},[362,12157,12158],{"code":12158},"1.2349999"," -> ",[362,12161,12162],{"code":12162},"1.23"," (小于一半，向下舍)",[359,12165,12166,12159,12169,12172],{},[362,12167,12168],{"code":12168},"1.2350001",[362,12170,12171],{"code":12171},"1.24"," (大于一半，向上舍)",[359,12174,12175,12159,12180,12184,12185,12187],{},[339,12176,12177],{},[362,12178,12179],{"code":12179},"1.2350000",[339,12181,12182],{},[362,12183,12171],{"code":12171}," (正好一半，",[362,12186,12171],{"code":12171}," 的 LSB (4) 是偶数，故向上舍)",[359,12189,12190,12159,12195,12184,12199,12201,12202],{},[339,12191,12192],{},[362,12193,12194],{"code":12194},"1.2450000",[339,12196,12197],{},[362,12198,12171],{"code":12171},[362,12200,12171],{"code":12171}," 的 LSB (4) 是偶数，故向下舍)\n",[339,12203,12204],{},"二进制示例 (G-R-S 位法)",[274,12206,12207,12208,12070,12211,1196,12214,12217],{},"在硬件实现中，我们使用 ",[339,12209,12210],{},"Guard (G)",[339,12212,12213],{},"Round (R)",[339,12215,12216],{},"Sticky (S)"," 位来判断。",[356,12219,12220,12228,12262,12324],{},[359,12221,12222,399,12225],{},[339,12223,12224],{},"来源：",[362,12226,12227],{"code":12227},"VLecture14_Float_Point_Operations_-_2025.pdf",[359,12229,12230,12231,12234],{},"假设一个计算结果为 ",[362,12232,12233],{"code":12233},"1.BB...B G R SSS...",[356,12235,12236,12242,12248,12254],{},[359,12237,12238,12241],{},[362,12239,12240],{"code":12240},"1.BB...B"," 是最终要保留的尾数位。",[359,12243,12244,12247],{},[339,12245,12246],{},"G (Guard位)："," 要保留的最低有效位 (LSB)。",[359,12249,12250,12253],{},[339,12251,12252],{},"R (Round位)："," 第一个被丢弃的位。",[359,12255,12256,12259,12260,564],{},[339,12257,12258],{},"S (Sticky位)："," 所有其他被丢弃位的逻辑 ",[339,12261,543],{},[359,12263,12264,12267],{},[339,12265,12266],{},"舍入决策（是否+1）：",[724,12268,12269,12280,12292],{},[359,12270,12271,12272,12275,12276,12279],{},"如果 ",[362,12273,12274],{"code":12274},"R=0","，则 ",[339,12277,12278],{},"不增加"," (舍去部分小于一半)。",[359,12281,12271,12282,11607,12285,12275,12288,12291],{},[362,12283,12284],{"code":12284},"R=1",[362,12286,12287],{"code":12287},"S=1",[339,12289,12290],{},"增加1"," (舍去部分大于一半)。",[359,12293,12271,12294,11607,12296,12299,12300,12303,12304],{},[362,12295,12284],{"code":12284},[362,12297,12298],{"code":12298},"S=0","，则处于 ",[339,12301,12302],{},"\"正好一半\""," 的情况。此时：\n",[356,12305,12306,12315],{},[359,12307,12271,12308,12311,12312,12314],{},[362,12309,12310],{"code":12310},"G=1"," (LSB为奇)，则 ",[339,12313,12290],{}," (使其变为偶数)。",[359,12316,12271,12317,12320,12321,12323],{},[362,12318,12319],{"code":12319},"G=0"," (LSB为偶)，则 ",[339,12322,12278],{}," (保持偶数)。",[359,12325,12326,12329],{},[339,12327,12328],{},"PPT中的表格示例：",[356,12330,12331,12380],{},[359,12332,12333,12334,12337,12338,12341,12342,2116,12345],{},"数值 ",[362,12335,12336],{"code":12336},"19"," (二进制 ",[362,12339,12340],{"code":12340},"1.0011000",")，",[362,12343,12344],{"code":12344},"GRS = 110",[356,12346,12347,12359,12366],{},[359,12348,12349,11607,12351,12353,12354,12341,12357,564],{},[362,12350,12284],{"code":12284},[362,12352,12298],{"code":12298}," (来自",[362,12355,12356],{"code":12356},"...00",[362,12358,12310],{"code":12310},[359,12360,12361,12362,12365],{},"符合上述第3条规则 (",[362,12363,12364],{"code":12364},"G=1, R=1, S=0",")，因此需要增加1。",[359,12367,12368,12369,12372,12373,12376,12377,564],{},"结果：",[362,12370,12371],{"code":12371},"1.001"," + ",[362,12374,12375],{"code":12375},"0.001"," = ",[362,12378,12379],{"code":12379},"1.010",[359,12381,12333,12382,12337,12385,12341,12388,2116,12391],{},[362,12383,12384],{"code":12384},"63",[362,12386,12387],{"code":12387},"1.1111100",[362,12389,12390],{"code":12390},"GRS = 111",[356,12392,12393,12401,12404],{},[359,12394,12395,11607,12397,12353,12399,2098],{},[362,12396,12284],{"code":12284},[362,12398,12287],{"code":12287},[362,12400,12356],{"code":12356},[359,12402,12403],{},"符合上述第2条规则，因此需要增加1。",[359,12405,12368,12406,12372,12409,12376,12411,564],{},[362,12407,12408],{"code":12408},"1.111",[362,12410,12375],{"code":12375},[362,12412,12413],{"code":12413},"10.000",[2419,12415],{},[331,12417,12419],{"id":12418},"单周期多周期流水线处理器的概念架构流水线与冲突的关系协处理器及其与主处理器关系",[277,12420,12421],{},"单周期、多周期、流水线处理器的概念架构，流水线与冲突的关系，协处理器及其与主处理器关系",[274,12423,12424],{},[327,12425],{"alt":327,"src":12426},"\u002Fimg\u002FHDL\u002FFeiQilai1-60.png",[960,12428,12429],{"id":12429},"单周期架构",[356,12431,12432,12442,12464],{},[359,12433,12434,12437,12438,12441],{},[339,12435,12436],{},"概念："," 整个处理器使用一个",[339,12439,12440],{},"非常长","的时钟周期。",[359,12443,12444,12447,12448,12451,12452,12455,12456,12459,12460,12463],{},[339,12445,12446],{},"架构："," 在这",[339,12449,12450],{},"一个","时钟周期内，一条指令必须",[339,12453,12454],{},"从头到尾","全部执行完毕（包括取指、译码、执行、访存、写回）。时钟周期的长度由",[339,12457,12458],{},"最慢","的指令（例如 ",[362,12461,12462],{"code":12462},"load","）来决定。",[359,12465,12466,12469],{},[339,12467,12468],{},"特性：",[356,12470,12471,12474,12481],{},[359,12472,12473],{},"设计简单。",[359,12475,12476,12477,12480],{},"性能很差，因为每条指令，即使是快速的指令（如 ",[362,12478,12479],{"code":12479},"add","），也必须等待那个为最慢指令设计的长时钟周期。",[359,12482,12483,12486,12491],{},[277,12484,12485],{},"由于一个周期内只有一条指令在执行，所以",[277,12487,12488],{},[339,12489,12490],{},"无需考虑冲突",[277,12492,564],{},[960,12494,12495],{"id":12495},"多周期架构",[356,12497,12498,12506,12517],{},[359,12499,12500,12502,12503,564],{},[339,12501,12436],{}," 这是对单周期架构的改进。它将一条指令的执行过程分解为多个（例如5个）更小的步骤，",[339,12504,12505],{},"每个步骤占用一个较短的时钟周期",[359,12507,12508,12510,12511,12513,12514,12516],{},[339,12509,12446],{}," 一条指令会花费多个时钟周期来完成。不同指令可以花费不同数量的周期（例如 ",[362,12512,12479],{"code":12479}," 可能花4个周期，",[362,12515,12462],{"code":12462}," 花5个周期）。",[359,12518,12519,12521],{},[339,12520,12468],{},[356,12522,12523,12526,12543],{},[359,12524,12525],{},"时钟频率可以提得更高（因为每个周期的工作量变少了）。",[359,12527,12528,12531,12532,12535,12536,12538,12539,12542],{},[339,12529,12530],{},"关键点："," 在任何时刻，",[339,12533,12534],{},"仍然只有一条指令","在处理器中执行。下一条指令必须",[339,12537,8250],{},"当前指令",[339,12540,12541],{},"完成其所有的步骤","后，才能开始取指。",[359,12544,12545,12548,12552],{},[277,12546,12547],{},"由于仍是串行执行，所以也",[277,12549,12550],{},[339,12551,12490],{},[277,12553,564],{},[960,12555,12556],{"id":12556},"流水线架构",[274,12558,12559],{},[327,12560],{"alt":327,"src":12561},"\u002Fimg\u002FHDL\u002FFeiQilai1-61.png",[356,12563,12564,12576,12606],{},[359,12565,12566,12568,12569,12572,12573],{},[339,12567,12436],{}," 这是对多周期架构的",[339,12570,12571],{},"自然增强","。它同样将指令执行分解为多个阶段（称为“流水级”，例如：",[277,12574,12575],{},"取指F、译码D、执行E、访存M、写回W）。",[359,12577,12578,12580],{},[339,12579,12446],{},[356,12581,12582,12588,12591,12594],{},[359,12583,12584,12585,564],{},"流水线的核心思想是让这",[339,12586,12587],{},"5个阶段在时间上并行起来",[359,12589,12590],{},"当指令1进入“执行E”阶段时，指令2同时进入“译码D”阶段，指令3同时进入“取指F”阶段。",[359,12592,12593],{},"理想情况下，每个时钟周期都有一条新指令进入流水线，同时有一条旧指令执行完毕。",[359,12595,12596,12597,12602,12605],{},"硬件上，",[277,12598,12599],{},[339,12600,12601],{},"流水级之间必须插入寄存器",[277,12603,12604],{},"（流水线寄存器）","，用于保存上一阶段的结果，传递给下一阶段。",[359,12607,12608,12610],{},[339,12609,12468],{},[356,12611,12612,12621],{},[359,12613,12614,12617,12618,564],{},[339,12615,12616],{},"吞吐率高","。虽然单条指令的执行总时间（延迟）可能比多周期架构还长一点（因为有寄存器开销），",[277,12619,12620],{},"但理想CPI（每指令时钟周期数）可以达到 1",[359,12622,12623,12625,12626,12629],{},[339,12624,12530],{}," 由于多条指令（最多5条）",[339,12627,12628],{},"同时在处理器中","的不同阶段执行，它们之间会产生资源和数据的依赖关系，这就是“冲突”的来源。",[960,12631,12633],{"id":12632},"流水线与冲突-hazard-的关系","流水线与冲突 (Hazard) 的关系",[274,12635,12636,12639],{},[339,12637,12638],{},"关系："," 流水线架构通过并行执行指令来提高吞吐率，但这种并行性恰恰是导致冲突的根本原因。",[274,12641,12642],{},[277,12643,12644],{},"冲突是指在流水线中，下一条指令无法在预定的时钟周期内正确执行的情况，它会阻碍流水线达到理想的CPI=1的目标。",[274,12646,12647],{},"主要有三类冲突：",[724,12649,12650,12692,12781],{},[359,12651,12652,12655],{},[339,12653,12654],{},"结构冲突",[356,12656,12657,12681,12686],{},[359,12658,12659,399,12662,12665,12670,12673,12678],{},[339,12660,12661],{},"原因：",[277,12663,12664],{},"硬件资源不足。当流水线中的两条不同指令在",[277,12666,12667],{},[339,12668,12669],{},"同一时钟周期",[277,12671,12672],{},"内尝试使用",[277,12674,12675],{},[339,12676,12677],{},"同一个硬件单元",[277,12679,12680],{},"时发生。",[359,12682,12683,12685],{},[339,12684,11993],{}," 假设指令存储器和数据存储器是同一个（没有分开），那么当指令4进行“访存M”阶段（读\u002F写数据）时，指令1正在“取指F”阶段（读指令），两者会竞争同一个存储器。",[359,12687,12688,12691],{},[339,12689,12690],{},"解决："," 增加额外硬件（例如，将指令存储器和数据存储器分开）。",[359,12693,12694,12697],{},[339,12695,12696],{},"数据冲突",[356,12698,12699,12721,12743],{},[359,12700,12701,399,12703,12706,12711,12714,12719],{},[339,12702,12661],{},[277,12704,12705],{},"指令之间存在数据依赖。当一条指令需要使用的数据",[277,12707,12708],{},[339,12709,12710],{},"尚未被它前面的某条指令计算或写回",[277,12712,12713],{},"时发生。最常见的是",[277,12715,12716],{},[339,12717,12718],{},"写后读 (RAW)",[277,12720,564],{},[359,12722,12723,12725,12728,12729,12732,12733,12736,12737,12739,12740,12742],{},[339,12724,11993],{},[362,12726,12727],{"code":12727},"ADD $2, $3, $4"," (这条指令在W阶段才把结果写入",[362,12730,12731],{"code":12731},"$2",") ",[362,12734,12735],{"code":12735},"ADD $5, $2, $6"," (这条指令在D阶段就要读取",[362,12738,12731],{"code":12731},"，此时",[362,12741,12731],{"code":12731},"的值是旧的)",[359,12744,12745,12747],{},[339,12746,12690],{},[356,12748,12749,12759],{},[359,12750,12751,12754,12755,12758],{},[339,12752,12753],{},"数据前推："," 不必等待W阶段，当",[362,12756,12757],{"code":12757},"ADD","指令在E阶段计算出结果后，立即将此结果从E阶段的输出“前推”到下一条指令的E阶段输入端，绕过寄存器堆。",[359,12760,12761,12764,12765,12768,12769,12772,12777,12780],{},[339,12762,12763],{},"暂停："," 有些情况（如",[362,12766,12767],{"code":12767},"LW","指令）数据在M阶段才准备好，此时必须暂停后面的指令，并在流水线中插入",[339,12770,12771],{},"一个“气泡” (Bubble)，即一个",[339,12773,12774],{},[362,12775,12776],{"code":12776},"NOP",[339,12778,12779],{},"（空操作）","，等待数据就绪。",[359,12782,12783,12786],{},[339,12784,12785],{},"控制冲突",[356,12787,12788,12815,12836],{},[359,12789,12790,399,12792,12795,12800,12803,12808,12810,12811,12814],{},[339,12791,12661],{},[277,12793,12794],{},"由分支或跳转指令引起。当处理器执行一条分支指令时，它需要时间（例如到E或M阶段）才能确定",[277,12796,12797],{},[339,12798,12799],{},"是否跳转",[277,12801,12802],{},"以及",[277,12804,12805],{},[339,12806,12807],{},"跳转到哪里",[277,12809,3172],{},"但流水线在D阶段就已经开始拉取下一条指令（即分支指令的",[362,12812,12813],{"code":12813},"PC+4","地址）了。",[359,12816,12817,399,12819,6633,12822,12825,12826,12828,12829,12831,12832,12835],{},[339,12818,11993],{},[362,12820,12821],{"code":12821},"BEQ $1, $2, Target",[362,12823,12824],{"code":12824},"BEQ"," 在D阶段时，F阶段已经在取 ",[362,12827,12813],{"code":12813}," 的指令了。如果 ",[362,12830,12824],{"code":12824}," 最终判断需要跳转到 ",[362,12833,12834],{"code":12834},"Target","，那么F阶段取来的指令就是错误的，必须被冲刷掉。",[359,12837,12838,12840],{},[339,12839,12690],{},[356,12841,12842,12848],{},[359,12843,12844,12847],{},[339,12845,12846],{},"分支预测 (Prediction)："," 猜测分支是否会跳转，并投机性地从预测的地址取指。如果猜错，则冲刷流水线。",[359,12849,12850,12853,12854,12857,12858,12860],{},[339,12851,12852],{},"分支延迟槽 (Branch Delay Slot)："," 规定分支指令后面的那条指令",[339,12855,12856],{},"总是","会被执行，无论分支是否跳转。编译器负责找到一条有用的指令（或",[362,12859,12776],{"code":12776},"）来填充这个“延迟槽”。",[960,12862,12863],{"id":12863},"协处理器及其与主处理器的关系",[274,12865,12866],{},[339,12867,12868],{},"什么是协处理器 (Coprocessor)？",[274,12870,12871],{},"协处理器是主处理器 (CPU) 之外的一个辅助处理单元，专门用于执行特定类型的任务，以分担主处理器的负担。",[356,12873,12874],{},[359,12875,12876,12878],{},[339,12877,11993],{},[356,12879,12880,12886,12892],{},[359,12881,12882,12885],{},[339,12883,12884],{},"CP0 (SCU - 系统控制协处理器)："," 负责异常\u002F中断处理、内存管理等操作系统功能。",[359,12887,12888,12891],{},[339,12889,12890],{},"CP1 (FPU - 浮点协处理器)："," 专门处理浮点数运算（加、减、乘、除）。",[359,12893,12894,12897,12898],{},[339,12895,12896],{},"CP2："," MIPS架构中保留给用户自定义的协处理器。\n",[339,12899,12900],{},"协处理器与主处理器的关系",[274,12902,12903,12904,12907,12908,12911],{},"协处理器",[339,12905,12906],{},"不是","一个能独立运行的CPU。它与主处理器（在MIPS中也称主框架 Main Frame 或整数处理器核心 IPC）是一种",[339,12909,12910],{},"紧密协同","的主从关系。",[724,12913,12914,12932,12954,12963],{},[359,12915,12916,12919,12920,12923,12924,12927,12928,12931],{},[339,12917,12918],{},"共享指令流："," 协处理器与主处理器",[339,12921,12922],{},"共享同一个指令代码空间","。主处理器负责",[339,12925,12926],{},"取指 (Fetch)"," 和",[339,12929,12930],{},"预译码 (Pre-decode)"," 所有的指令。",[359,12933,12934,12937,12938,12941,12942,12945,12946,12949,12950,12953],{},[339,12935,12936],{},"指令分发："," 当主处理器取到一条指令，它会先进行译码。如果发现这是一条协处理器指令（例如，MIPS中",[362,12939,12940],{"code":12940},"opcode","为",[362,12943,12944],{"code":12944},"0100xx","），它会根据指令中的协处理器编号（如 ",[362,12947,12948],{"code":12948},"xx=01"," 代表CP1\u002FFPU）将这条指令",[339,12951,12952],{},"分发","给对应的协处理器。",[359,12955,12956,12959,12960,564],{},[339,12957,12958],{},"协同执行："," 协处理器接管该指令的执行，而主处理器可以继续执行后续指令（如果不存在依赖）。这种架构就像一个",[339,12961,12962],{},"“具有分支的流水线”",[359,12964,12965,12968,12969,12972,12973],{},[339,12966,12967],{},"数据交换："," 协处理器（如FPU）拥有自己的寄存器（如浮点寄存器FPRs）。它们通过",[339,12970,12971],{},"协处理器接口"," 与主处理器的通用寄存器 (GPRs) 交换数据。\n",[356,12974,12975,12985],{},[359,12976,12977,12980,12981,12984],{},[362,12978,12979],{"code":12979},"mtc1"," (Move To Coprocessor 1)：将数据从主处理器的 GPR ",[339,12982,12983],{},"移动到"," FPU 的 FPR。",[359,12986,12987,12990,12991,12994],{},[362,12988,12989],{"code":12989},"mfc1"," (Move From Coprocessor 1)：将数据从 FPU 的 FPR ",[339,12992,12993],{},"移动回"," 主处理器的 GPR。",[2419,12996],{},[331,12998,12999],{"id":12999},"请说明实践指南章节中示例的主处理器与协处理器是怎样解决数据冲突的",[431,13001,13002],{"style":966},[456,13003,13004],{},[437,13005,972,13006,972,13013],{"style":971},[461,13007,13008,972],{"style":5326},[274,13009,13010],{},[327,13011],{"alt":327,"src":13012},"\u002Fimg\u002FHDL\u002FFeiQilai1-62.png",[461,13014,13015,972],{"style":5318},[274,13016,13017],{},[327,13018],{"alt":327,"src":13019},"\u002Fimg\u002FHDL\u002FFeiQilai1-63.png",[274,13021,13022,13023,399,13028,399,13030,564],{},"通过两种机制来解决数据冲突：",[277,13024,13025],{},[339,13026,13027],{},"数据前推 (Forwarding)",[277,13029,2480],{},[277,13031,13032],{},[339,13033,13034],{},"阻塞\u002F暂停 (Blocking\u002FStalling)",[274,13036,13037],{},"这个系统中的数据冲突分为两种：",[724,13039,13040,13049,13062],{},[359,13041,13042,13045,13046,13048],{},[339,13043,13044],{},"GPR (通用寄存器) 的冲突："," 发生在主处理器 (MF) 内部，通常与 ",[362,13047,12989],{"code":12989},"（从FPU读回数据）有关。",[359,13050,13051,13054,13055,13057,13058,13061],{},[339,13052,13053],{},"FPR (浮点寄存器) 的冲突："," 发生在协处理器 (FPU) 内部，与 ",[362,13056,12979],{"code":12979},"（向FPU写入数据）或FPU运算指令（如 ",[362,13059,13060],{"code":13060},"div.s","）有关。\n以下是这两种冲突的具体解决方法：",[359,13063,13064],{},"解决 GPR 的数据冲突 (在主处理器 MF 中)",[356,13066,13067],{},[359,13068,13069,13072,13073,13075,13076,13079,13080,13083,13084,13086,13087,13089,13090,13093],{},[339,13070,13071],{},"冲突情景："," 一条指令（如 ",[362,13074,12979],{"code":12979},"）在",[339,13077,13078],{},"译码D级","需要读取主处理器的",[339,13081,13082],{},"GPR","，但这个GPR的值依赖于一条更早的指令（如 ",[362,13085,12989],{"code":12989},"）的写回。",[362,13088,12989],{"code":12989}," 指令要到",[339,13091,13092],{},"写回W级","才会把从FPU取回的数据写入GPR。",[1410,13095,13098],{"className":13096,"code":13097,"language":1415,"meta":1416},[1413],"mfc1 $t0, $f0   \u002F\u002F W级才写入 t0\nmtc1 $t0, $f2   \u002F\u002F D级就需要读取 t0\n",[362,13099,13097],{"__ignoreMap":1416},[356,13101,13102,13112],{},[359,13103,13104,13107,13108,13111],{},[339,13105,13106],{},"解决方案：数据前推 (Operand Forwarding)"," 讲义（",[362,13109,13110],{"code":13110},"VLecture15"," 第50页）指出，主处理器 (MF) 的冲突检测逻辑会发现这种RAW（写后读）依赖。",[359,13113,13114,13115,13118,13119,13121,13122,13124,13125,13128,13129,13131],{},"解决方案是",[339,13116,13117],{},"不","等待 ",[362,13120,12989],{"code":12989}," 到达W级。FPU取回的数据在 ",[362,13123,12989],{"code":12989}," 指令的 E1, E2, 或 W 流水级时就已经可用了。主处理器的前推逻辑 (Forwarding Logic) 会捕获这个数据，并将其",[339,13126,13127],{},"直接“前推”","（或称“旁路”）到 ",[362,13130,12979],{"code":12979}," 指令的执行阶段所需的操作数输入端，从而避免了流水线暂停。",[724,13133,13135],{"start":13134},4,[359,13136,13137],{},"解决 FPR 的数据冲突 (在FPU协处理器中)\nFPU内部的冲突检测更为复杂，它需要处理两种来源的数据。",[356,13139,13140],{},[359,13141,13142,13145,13146,13075,13148,13151,13152,13155,13156,13158],{},[339,13143,13144],{},"冲突情景 1：数据来自主处理器 (MF)"," 一条FPU运算指令（如 ",[362,13147,13060],{"code":13060},[339,13149,13150],{},"EX级","需要读取一个",[339,13153,13154],{},"FPR","，但这个FPR的值依赖于刚从主处理器GPR传来的 ",[362,13157,12979],{"code":12979}," 指令。",[1410,13160,13163],{"className":13161,"code":13162,"language":1415,"meta":1416},[1413],"mtc1 $t0, $f1   \u002F\u002F ID级将数据写入 $f1\ndiv.s $f2, $f1, $f0  \u002F\u002F EX级需要读取 $f1\n",[362,13164,13162],{"__ignoreMap":1416},[356,13166,13167,13178,13193],{},[359,13168,13169,13107,13172,13174,13175,564],{},[339,13170,13171],{},"解决方案 (情景1)：数据前推 (Forwarding)",[362,13173,13110],{"code":13110}," 第59页）指出，FPU的冲突检测逻辑会发现 ",[362,13176,13177],{"code":13177},"ID.FPRead == EX.MTCWrite",[359,13179,13180,13182,13183,13186,13187,13189,13190,13192],{},[362,13181,12979],{"code":12979}," 在FPU的ID级（对应MF的D级）就开始接收来自GPR的数据。FPU的前推逻辑会",[339,13184,13185],{},"直接将这个刚收到的数据","从ID级传递给 ",[362,13188,13060],{"code":13060}," 指令的EX级，无需等待 ",[362,13191,12979],{"code":12979}," 完成写回。",[359,13194,13195,13198,13199,13201,13202,399,13205,13209,13211,13212,564],{},[339,13196,13197],{},"冲突情景 2：数据来自上一个FPU运算 (FPU -> FPU)"," 一条FPU指令需要读取一个",[339,13200,13154],{},"，但这个FPR是",[339,13203,13204],{},"上一个FPU运算指令（如",[339,13206,13207],{},[362,13208,13060],{"code":13060},[339,13210,2606],{}," 的目标寄存器，而那个运算",[339,13213,13214],{},"尚未完成",[1410,13216,13219],{"className":13217,"code":13218,"language":6586},[8834],"div.s $f2, $f1, $f0   \u002F\u002F 这是一个多周期操作，结果在EX\u002FWB级才可用\nadd.s $f4, $f2, $f3   \u002F\u002F EX级需要读取 $f2\n",[362,13220,13218],{"__ignoreMap":1416},[356,13222,13223],{},[359,13224,13225,13228,13229,13231,13232],{},[339,13226,13227],{},"解决方案 (情景2)：前推 或 阻塞 (Forwarding or Blocking)"," 这是最关键的冲突，讲义（",[362,13230,13110],{"code":13110}," 第59页）中描述了两种情况：\n",[724,13233,13234,13251,13271],{},[359,13235,13236,13239,13240,13242,13243,13246,13247,13250],{},[339,13237,13238],{},"可前推："," 如果 ",[362,13241,13060],{"code":13060}," 已经完成计算，结果在",[339,13244,13245],{},"WB级","（写回级）。FPU的前推逻辑会像在主处理器中一样，将WB级的结果数据前推给 ",[362,13248,13249],{"code":13249},"add.s"," 指令的EX级。",[359,13252,13253,13239,13256,13258,13259,13261,13262,13264,13265,373,13268,13270],{},[339,13254,13255],{},"必须阻塞：",[362,13257,13060],{"code":13060}," 是一个耗时很长的操作（如多周期除法），当 ",[362,13260,13249],{"code":13249}," 进入EX级时，",[362,13263,13060],{"code":13060}," 的结果",[339,13266,13267],{},"尚未生成",[362,13269,13060],{"code":13060}," 仍在自己的EX级）。此时数据无法前推。",[359,13272,13273,13274],{},"在这种情况下，FPU的冲突检测逻辑会：\n",[356,13275,13276,13281,13290,13297],{},[359,13277,13278,564],{},[339,13279,13280],{},"发出“FPU数据冲突信号” (FPU data conflict signal)",[359,13282,13283,13284,3276,13287,13289],{},"这个信号被发送回",[339,13285,13286],{},"主处理器 (MF) 的全局阻塞控制器",[362,13288,13110],{"code":13110}," 第52页）。",[359,13291,13292,13293,13296],{},"主处理器 (MF) 收到该信号后，",[339,13294,13295],{},"立刻暂停 (Stall) 其D级流水线","，导致MF的D级和F级都停止取指和译码，从而也阻止了FPU获得新指令。",[359,13298,13299,13300,13302],{},"流水线会一直暂停，直到 ",[362,13301,13060],{"code":13060}," 计算完成，FPU撤销这个冲突信号，流水线才恢复执行。",[2419,13304],{},[320,13306,13307],{"id":13307},"练习示例",[331,13309,13311],{"id":13310},"一在设计初期同一工艺下如何简单评价时钟面积功耗","一、在设计初期同一工艺下，如何简单评价时钟、面积、功耗？",[724,13313,13314,13344,13363],{},[359,13315,13316,13317],{},"时钟 (性能)\n",[356,13318,13319,13330],{},[359,13320,13321,13322,13327,564],{},"时钟周期主要由",[277,13323,13324],{},[339,13325,13326],{},"关键路径的逻辑延迟",[277,13328,13329],{},"决定",[359,13331,13332,13333,13336,13341],{},"在简单估算时，可以通过对比不同设计方案",[277,13334,13335],{},"中，",[277,13337,13338],{},[339,13339,13340],{},"关键路径上级联的二输入与非门 (2-input NAND gates) 的数量",[277,13342,13343],{},"来进行评价。",[359,13345,13346,13347],{},"面积\n",[356,13348,13349,13360],{},[359,13350,13351,13352,13357],{},"设计的总面积可以简单地通过",[277,13353,13354],{},[339,13355,13356],{},"所有部件折算成的二输入与非门的总数量",[277,13358,13359],{},"来对比。",[359,13361,13362],{},"不仅是逻辑门，像存储单元（如寄存器）等也可以归约（折算）成等效的二输入与非门数量来进行统一评价。",[359,13364,13365,13366],{},"功耗\n",[356,13367,13368,13374,13380,13386],{},[359,13369,13370,13371,564],{},"在同一工艺下，传统CMOS电路的功耗主要是",[339,13372,13373],{},"动态功耗",[359,13375,13376,13377,564],{},"动态功耗通常与",[339,13378,13379],{},"性能（时钟频率）成正相关",[359,13381,13382,13383,564],{},"简单估算公式为：动态功耗 ∝电源电压**2* (时钟周期)⁻¹，即",[339,13384,13385],{},"时钟频率越高，功耗越大",[359,13387,13388,13391],{},[339,13389,13390],{},"静态功耗与面积相关","，但在早期简单估算时可以暂时不考虑。",[960,13393,13394],{"id":13394},"综合评价",[274,13396,13397,13398,13401],{},"在评估架构时，可以将这三个指标进行复合，例如，使用",[339,13399,13400],{},"（时钟周期 × 面积 × 功耗）的乘积","来进行综合评价。",[2419,13403],{},[331,13405,13407],{"id":13406},"二请写出复位同步化的verilog代码并用注释的方式描述其主要内容与作用","二、请写出复位同步化的Verilog代码，并用注释的方式描述其主要内容与作用",[270,13409,13410],{"type":272},[724,13411,13412,13419],{},[359,13413,13414,13415,13418],{},"复位同步化是指",[339,13416,13417],{},"将异步复位信号同步到时钟域","，避免亚稳态和复位释放时的时序问题。",[359,13420,13421,13424,13425,13428,13429,13431,13432,13435,13436,13439],{},[362,13422,13423],{"code":13423},"async_rst_n"," 是一个异步信号，它可能在",[339,13426,13427],{},"任何时间","从低电平（复位状态）变为高电平（非复位状态）。\n如果这个“变为高电平”的时刻，恰好发生在 ",[362,13430,1856],{"code":1856}," 时钟上升沿的",[339,13433,13434],{},"附近","（在一个被称为“亚稳态窗口”的极小时间窗内），就会违反触发器的",[339,13437,13438],{},"恢复时间 (Recovery Time)"," 要求",[1410,13441,13444],{"className":13442,"code":13443,"language":1415,"meta":1416},[1413],"\u002F\u002F 模块定义\nmodule ResetSynchronizer (\n    output wire o_rst_sync_n, \u002F\u002F 同步后的复位信号（低有效）\n    input  wire i_clk,         \u002F\u002F 目标时钟\n    input  wire i_rst_async_n  \u002F\u002F 异步复位输入（低有效）\n);\n\n    \u002F\u002F 定义两级寄存器用于同步\n    reg rst_sync_r1;\n    reg rst_sync_r2;\n\n    \u002F\u002F 异步复位、同步释放的核心逻辑\n    \u002F\u002F 敏感列表包含时钟上升沿和复位下降沿\n    always @(posedge i_clk or negedge i_rst_async_n) begin\n        if (!i_rst_async_n) begin\n            \u002F\u002F 异步复位：立即将两级寄存器都拉低\n            rst_sync_r1 \u003C= 1'b0;\n            rst_sync_r2 \u003C= 1'b0;\n        end else begin\n            \u002F\u002F 同步释放：在时钟边沿逐级传递高电平（代表复位被释放）\n            rst_sync_r1 \u003C= 1'b1;\n            rst_sync_r2 \u003C= rst_sync_r1;\n        end\n    end\n\n    \u002F\u002F 将第二级寄存器的输出作为同步后的复位信号\n    assign o_rst_sync_n = rst_sync_r2;\n\nendmodule\n",[362,13445,13443],{"__ignoreMap":1416},[2419,13447],{},[331,13449,13451],{"id":13450},"三请写出在8位中找最高位1的verilog代码并采用注释的方式简述其行为的含义","三、请写出在8位中找最高位\"1\"的Verilog代码，并采用注释的方式简述其行为的含义",[1410,13453,13456],{"className":13454,"code":13455,"language":1415,"meta":1416},[1413],"\u002F\u002F 模块：在8位中找最高位\"1\"\n\u002F\u002F 示例：\n\u002F\u002F   输入 x = 8'b0010_0000 (索引5是最高'1') -> 输出 y = 3'b101 (5)\n\u002F\u002F   输入 x = 8'b0000_0100 (索引2是最高'1') -> 输出 y = 3'b010 (2)\nmodule find_ones(\n    input [7:0] x,   \u002F\u002F 8位输入数据\n    output [2:0] y   \u002F\u002F 3位输出，表示最高\"1\"的索引\n);\n\n    \u002F\u002F 中间信号，用于暂存包含最高\"1\"的4位数据块\n    wire [3:0] data_4;\n    \u002F\u002F 中间信号，用于暂存包含最高\"1\"的2位数据块\n    wire [1:0] data_2;\n\n    \u002F\u002F 1. 确定索引的第2位 (MSB)\n    \u002F\u002F    检查高4位(x[7:4])是否有1。\n    \u002F\u002F    `|` 是缩位或操作符，x[7:4]中任一为1，结果即为1。\n    assign y[2] = |x[7:4];\n\n    \u002F\u002F 2. 选择包含最高\"1\"的4位块\n    \u002F\u002F    如果y[2]为1 (最高'1'在[7:4]中)，则data_4 = x[7:4]\n    \u002F\u002F    否则 (最高'1'在[3:0]中)，data_4 = x[3:0]\n    assign data_4 = y[2] ? x[7:4] : x[3:0];\n\n    \u002F\u002F 3. 确定索引的第1位\n    \u002F\u002F    在已选定的4位块(data_4)中，检查其高2位(data_4[3:2])是否有1\n    assign y[1] = |data_4[3:2];\n\n    \u002F\u002F 4. 选择包含最高\"1\"的2位块\n    \u002F\u002F    如果y[1]为1 (最高'1'在data_4[3:2]中)，则data_2 = data_4[3:2]\n    \u002F\u002F    否则 (最高'1'在data_4[1:0]中)，data_2 = data_4[1:0]\n    assign data_2 = y[1] ? data_4[3:2] : data_4[1:0];\n\n    \u002F\u002F 5. 确定索引的第0位 (LSB)\n    \u002F\u002F    在已选定的2位块(data_2)中，检查其高1位(data_2[1])是否为1\n    assign y[0] = data_2[1];\n\nendmodule\n",[362,13457,13455],{"__ignoreMap":1416},[2419,13459],{},[331,13461,13463],{"id":13462},"请描述如何在verilog中实现一个简单的异步复位d触发器","请描述如何在Verilog中实现一个简单的异步复位D触发器",[1410,13465,13468],{"className":13466,"code":13467,"language":1415,"meta":1416},[1413],"\u002F\u002F 模块：带异步复位（低有效）的D触发器\nmodule d_flip_flop_async_reset (\n    output reg q,   \u002F\u002F 触发器输出\n    input wire d,    \u002F\u002F 数据输入\n    input wire clk,   \u002F\u002F 时钟\n    input wire rst_n  \u002F\u002F 异步复位（低有效）\n);\n\n    \u002F\u002F 敏感列表包含时钟上升沿和复位下降沿\n    always @(posedge clk or negedge rst_n) begin\n        if (!rst_n) begin\n            \u002F\u002F 异步复位：立即将q置为0\n            q \u003C= 1'b0;\n        end else begin\n            \u002F\u002F 正常时钟沿：采样输入d\n            q \u003C= d;\n        end\n    end\n\nendmodule\n",[362,13469,13467],{"__ignoreMap":1416},[2419,13471],{},[331,13473,13475],{"id":13474},"采用中间变量方式写出一个全加器单元的verilog代码并用注释的方式描述其行为的含义","采用中间变量方式，写出一个全加器单元的Verilog代码，并用注释的方式描述其行为的含义",[1410,13477,13480],{"className":13478,"code":13479,"language":1415,"meta":1416},[1413],"\u002F\u002F 模块：1位全加器（使用中间变量）\nmodule full_add3(\n    input  wire a,\n    input  wire b,\n    input  wire cin,\n    output reg  sum,\n    output reg  cout\n);\n\n    \u002F\u002F 定义中间变量，用于存储产生进位的各项\n    reg m1, m2, m3;\n\n    \u002F\u002F 使用 always @(*) 来描述组合逻辑\n    always @(a or b or cin) begin\n        \u002F\u002F 1. 计算\"和\" (Sum)\n        \u002F\u002F    和是三个输入的异或\n        sum = (a ^ b) ^ cin;\n\n        \u002F\u002F 2. 计算\"进位\"(Carry)的中间项\n        \u002F\u002F    m1: a 和 b 均为 1\n        m1 = a & b;\n        \u002F\u002F    m2: b 和 cin 均为 1\n        m2 = b & cin;\n        \u002F\u002F    m3: a 和 cin 均为 1\n        m3 = a & cin;\n\n        \u002F\u002F 3. 计算最终的\"输出进位\" (Cout)\n        \u002F\u002F    只要任意一个中间项为1，就产生进位\n        cout = (m1 | m2) | m3;\n    end\n\nendmodule\n",[362,13481,13479],{"__ignoreMap":1416},[2419,13483],{},[331,13485,13487],{"id":13486},"采用中间变量方式写出一个32位组合向左移位器的verilog代码并简述其行为的含义","采用中间变量方式，写出一个32位组合向左移位器的Verilog代码，并简述其行为的含义",[1410,13489,13492],{"className":13490,"code":13491,"language":1415,"meta":1416},[1413],"\u002F\u002F 模块：32位组合逻辑左移位器（使用中间变量）\nmodule left_shift_middle32(\n    input  wire [31:0] data,  \u002F\u002F 32位输入数据\n    input  wire [4:0]  ctrl,  \u002F\u002F 5位移位量控制信号\n    output reg  [31:0] out    \u002F\u002F 32位移位后输出\n);\n\n    \u002F\u002F 中间变量，用于存储每一级移位的结果\n    reg [31:0] temp;\n\n    \u002F\u002F 组合逻辑块，敏感列表包含所有输入\n    always @(data or ctrl)\n    begin\n        \u002F\u002F 行为含义：\n        \u002F\u002F 这是一个5级级联的桶形移位器。\n        \u002F\u002F temp 变量在每一级中被重复使用和赋值。\n\n        \u002F\u002F 第1级：根据 ctrl[0] (控制1位) 决定是否左移1位\n        \u002F\u002F {{data[30:0]}, 1'b0} 是 Verilog 的拼合操作，等效于 data \u003C\u003C 1\n        temp = ctrl[0] ? {{data[30:0]}, 1'b0} : data;\n\n        \u002F\u002F 第2级：根据 ctrl[1] (控制2位) 决定是否将上一级结果(temp)再左移2位\n        temp = ctrl[1] ? {{temp[29:0]}, 2'b0} : temp;\n\n        \u002F\u002F 第3级：根据 ctrl[2] (控制4位) 决定是否将上一级结果(temp)再左移4位\n        temp = ctrl[2] ? {{temp[27:0]}, 4'b0} : temp;\n\n        \u002F\u002F 第4级：根据 ctrl[3] (控制8位) 决定是否将上一级结果(temp)再左移8位\n        temp = ctrl[3] ? {{temp[23:0]}, 8'b0} : temp;\n\n        \u002F\u002F 第5级：根据 ctrl[4] (控制16位) 决定是否将上一级结果(temp)再左移16位\n        temp = ctrl[4] ? {{temp[15:0]}, 16'b0} : temp;\n\n        \u002F\u002F 将最后一级的结果赋给输出\n        out = temp;\n    end\n\nendmodule\n",[362,13493,13491],{"__ignoreMap":1416},[2419,13495],{},[331,13497,13499],{"id":13498},"请谈谈testbench的大致框架","请谈谈Testbench的大致框架？",[274,13501,13502,13503,13506],{},"Testbench（测试台）是一个用于",[339,13504,13505],{},"实施设计验证","的Verilog模型。它本身不是设计的一部分，而是用来模拟和验证你的设计（称为UUT，Unit Under Test，或DUT，Design Under Test）是否按预期工作的。",[274,13508,13509],{},"其大致框架和核心组成部分包括：",[724,13511,13512,13522,13551],{},[359,13513,13514,13517],{},[339,13515,13516],{},"实例化被测模块：",[356,13518,13519],{},[359,13520,13521],{},"Testbench的顶层模块中会实例化（调用）你所设计的硬件模块（UUT）。",[359,13523,13524,13527],{},[339,13525,13526],{},"激励生成：",[356,13528,13529,13532,13541],{},[359,13530,13531],{},"这一部分负责产生并施加测试激励（也称为测试向量或测试模板）到UUT的输入端口。",[359,13533,13534,13535,13537,13538,13540],{},"这通常在 ",[362,13536,548],{"code":548}," 块中完成，使用 ",[362,13539,944],{"code":944}," 延迟来控制信号在不同时间的变化。",[359,13542,13543,13546,13547,13550],{},[339,13544,13545],{},"时钟和复位生成："," 对于时序逻辑，Testbench必须生成一个时钟信号（例如使用 ",[362,13548,13549],{"code":13549},"always #5 clk = ~clk;","）和一个初始的复位信号。",[359,13552,13553,13556],{},[339,13554,13555],{},"结果检查：",[356,13557,13558,13561,13568],{},[359,13559,13560],{},"这一部分会监视UUT的输出端口。",[359,13562,13563,13564,13567],{},"它会将UUT的实际输出与一个",[339,13565,13566],{},"预期的（黄金）结果","进行比较。",[359,13569,13570,13571,13573,13574,381,13576],{},"当发现不一致时，它会报告错误（例如使用 ",[362,13572,1319],{"code":1319}," 打印错误信息），并可能终止仿真（使用 ",[362,13575,1323],{"code":1323},[277,13577,3824],{},[2419,13579],{},[331,13581,13583],{"id":13582},"单精度规范值与非规范值特殊值有什么不同","单精度规范值与非规范值、特殊值有什么不同？",[274,13585,13586,13587,13590],{},"这三者的核心区别在于",[339,13588,13589],{},"指数 (exp) 字段","的编码方式，这决定了尾数 (frac) 如何被解释。",[274,13592,13593],{},"假设为单精度（exp为8位，frac为23位）：",[724,13595,13596,13648,13715],{},[359,13597,13598,13601],{},[339,13599,13600],{},"规范值",[356,13602,13603,13623,13631,13642],{},[359,13604,13605,399,13607,13609,13610,2190,13613,13616,13617,2190,13620,2098],{},[339,13606,11089],{},[362,13608,11073],{"code":11073}," 字段",[339,13611,13612],{},"不是全0",[362,13614,13615],{"code":13615},"00...0",") 也",[339,13618,13619],{},"不是全1",[362,13621,13622],{"code":13622},"11...1",[359,13624,13625,399,13627,13630],{},[339,13626,11104],{},[362,13628,13629],{"code":13629},"E = exp - 127"," (Bias)。",[359,13632,13633,13635,13636,564,13639,564],{},[339,13634,11211],{}," 尾数",[339,13637,13638],{},"隐含一个前导“1”",[362,13640,13641],{"code":13641},"M = 1.frac",[359,13643,13644,13647],{},[339,13645,13646],{},"用途："," 表示绝大多数“正常”的浮点数。",[359,13649,13650,13653],{},[339,13651,13652],{},"非规范值",[356,13654,13655,13666,13678,13688],{},[359,13656,13657,399,13659,13609,13661,2190,13664,2098],{},[339,13658,11089],{},[362,13660,11073],{"code":11073},[339,13662,13663],{},"是全0",[362,13665,13615],{"code":13615},[359,13667,13668,13670,13671,13674,13675,1274],{},[339,13669,11104],{}," 指数被固定为最小值 ",[362,13672,13673],{"code":13673},"E = -126","（即 ",[362,13676,13677],{"code":13677},"1 - 127",[359,13679,13680,13635,13682,564,13685,564],{},[339,13681,11211],{},[339,13683,13684],{},"隐含一个前导“0”",[362,13686,13687],{"code":13687},"M = 0.frac",[359,13689,13690,13692],{},[339,13691,13646],{},[356,13693,13694,13707],{},[359,13695,13696,11603,13699,13701,13702,1120,13704,13706],{},[339,13697,13698],{},"0 ：",[362,13700,11241],{"code":11241}," 也是全0时，表示 ",[362,13703,12092],{"code":12092},[362,13705,12095],{"code":12095},"（取决于符号位）。",[359,13708,13709,11603,13712,13714],{},[339,13710,13711],{},"次规范数 ：",[362,13713,11241],{"code":11241}," 非0时，它表示那些非常接近于0、比最小规范值还小的数。这用于实现“逐渐下溢”，以保持精度。",[359,13716,13717,13720],{},[339,13718,13719],{},"特殊值",[356,13721,13722,13733],{},[359,13723,13724,399,13726,13609,13728,2190,13731,2098],{},[339,13725,11089],{},[362,13727,11073],{"code":11073},[339,13729,13730],{},"是全1",[362,13732,13622],{"code":13622},[359,13734,13735,13737],{},[339,13736,13646],{},[356,13738,13739,13747],{},[359,13740,13741,11603,13744,13746],{},[339,13742,13743],{},"无穷大 ：",[362,13745,11241],{"code":11241}," 是全0时。用于表示“上溢”（结果大到无法表示）或“被0除”。",[359,13748,13749,11603,13751,13753,13754,12070,13756,1120,13758,564],{},[339,13750,11811],{},[362,13752,11241],{"code":11241}," 非0时。用于表示一个“非法操作”的结果，例如 ",[362,13755,12021],{"code":12021},[362,13757,12013],{"code":12013},[362,13759,13760],{"code":13760},"inf - inf",[2419,13762],{},[331,13764,13766],{"id":13765},"请叙述处理器的多周期架构与流水线架构的相同与不同","请叙述处理器的多周期架构与流水线架构的相同与不同？",[274,13768,13769],{},"这两种架构都是对单周期架构的改进，它们都将一条指令的执行划分为多个（如5个）阶段（取指、译码、执行、访存、写回），并使用更短的时钟周期。",[274,13771,13772],{},[339,13773,13774],{},"相同点：",[724,13776,13777,13783],{},[359,13778,13779,13782],{},[339,13780,13781],{},"指令分解："," 都将一条指令的完整执行过程分解为多个更小的步骤。",[359,13784,13785,13788,13789],{},[339,13786,13787],{},"时钟周期："," 都使用一个较短的时钟周期，每个周期只完成一个步骤，因此时钟频率远高于单周期架构。\n",[339,13790,13791],{},"不同点：",[431,13793,13794,13807],{},[434,13795,13796],{},[437,13797,13798,13801,13804],{},[440,13799,13800],{},"特性",[440,13802,13803],{},"多周期架构 (Multi-Cycle)",[440,13805,13806],{},"流水线架构 (Pipelined)",[456,13808,13809,13820,13831,13842,13853],{},[437,13810,13811,13814,13817],{},[461,13812,13813],{},"执行方式",[461,13815,13816],{},"串行 (Serial)",[461,13818,13819],{},"并行 (Parallel)",[437,13821,13822,13825,13828],{},[461,13823,13824],{},"指令重叠",[461,13826,13827],{},"无重叠。在任何时刻，处理器中只有一条指令在执行。下一条指令必须等待当前指令完全结束后才能开始。",[461,13829,13830],{},"有重叠。在任何时刻，处理器中有多条（最多5条）指令同时在执行，只是它们处于不同的阶段。",[437,13832,13833,13836,13839],{},[461,13834,13835],{},"吞吐率 (CPI)",[461,13837,13838],{},"较差。理想CPI是指令的平均周期数（例如4或5）。",[461,13840,13841],{},"极高。理想CPI可以达到1（即每个周期完成一条指令）。",[437,13843,13844,13847,13850],{},[461,13845,13846],{},"硬件需求",[461,13848,13849],{},"硬件资源可以被（在不同周期）复用。",[461,13851,13852],{},"必须在每个阶段之间插入流水线寄存器，以保存中间结果并传递给下一阶段。",[437,13854,13855,13858,13861],{},[461,13856,13857],{},"冲突问题",[461,13859,13860],{},"没有冲突。因为指令是串行执行的，不存在资源或数据的竞争。",[461,13862,13863],{},"必须处理冲突。由于指令并行执行，会导致结构冲突（抢占硬件）、数据冲突（数据未准备好）和控制冲突（分支跳转）。",[2419,13865],{},[331,13867,13869],{"id":13868},"请叙述主处理器与协处理器是怎样大致衔接的这样的架构主要反映了什么思路","请叙述主处理器与协处理器是怎样大致衔接的？这样的架构主要反映了什么思路？",[274,13871,13872],{},[339,13873,13874],{},"衔接方式：",[274,13876,13877,13878,13880],{},"主处理器（MF或IPC）和协处理器（如FPU）是一种紧密协同的主从关系，它们通过一个",[339,13879,12971],{},"来衔接：",[724,13882,13883,13892,13907,13915],{},[359,13884,13885,13887,13888,12927,13890,12931],{},[339,13886,12918],{}," 主处理器和协处理器共享同一个指令流。主处理器负责",[339,13889,12926],{},[339,13891,12930],{},[359,13893,13894,13896,13897,13899,13900,13902,13903,13906],{},[339,13895,12936],{}," 当主处理器译码时，发现这条指令是“协处理器指令”（例如通过特定的",[362,13898,12940],{"code":12940},"识别），它就会将这条指令",[339,13901,12952],{},"给对应的协处理器（例如 ",[362,13904,13905],{"code":13905},"opcode 010001"," 分发给CP1，即FPU）。",[359,13908,13909,13911,13912,13914],{},[339,13910,12958],{}," 协处理器接管该指令的执行（例如FPU执行 ",[362,13913,13060],{"code":13060},"），而主处理器可以继续执行后续的指令（如果不存在依赖）。",[359,13916,13917,13919,13920],{},[339,13918,12967],{}," 协处理器（FPU）拥有自己的寄存器堆（FPRs）。当需要与主处理器的通用寄存器堆（GPRs）交换数据时，使用专门的指令：\n",[356,13921,13922,13936],{},[359,13923,13924,399,13928,13931,13932,13935],{},[339,13925,13926],{},[362,13927,12979],{"code":12979},[339,13929,13930],{},"(Move To Coprocessor 1)："," 主处理器将数据从GPR",[339,13933,13934],{},"写入","FPU的FPR。",[359,13937,13938,399,13942,13945,13946,13949,13950],{},[339,13939,13940],{},[362,13941,12989],{"code":12989},[339,13943,13944],{},"(Move From Coprocessor 1)："," 主处理器从FPU的FPR",[339,13947,13948],{},"读回","数据到GPR。\n",[339,13951,13952],{},"反映的思路：",[274,13954,13955,13956,2480,13959,13962],{},"这种架构主要反映了",[339,13957,13958],{},"“功能专业化”",[339,13960,13961],{},"“任务委托”","的设计思路。",[724,13964,13965,13971,13977],{},[359,13966,13967,13970],{},[339,13968,13969],{},"功能专业化："," 主处理器（整数核心）专注于执行常规的整数运算、逻辑判断和程序流控制。而协处理器（如FPU）则是一个高度优化的“专家”，专门处理复杂且耗时的特定任务（如浮点运算）。",[359,13972,13973,13976],{},[339,13974,13975],{},"任务委托："," 主处理器充当“总指挥”，它不自己去执行不擅长的浮点计算，而是将这些任务“委托”给FPU。",[359,13978,13979,13982],{},[339,13980,13981],{},"流水线扩展："," 这种架构可以被视为主流水线的一个“功能分支”。协处理器就像一个并行的、专门的执行流水线，主处理器可以将特定指令“分流”到这个分支流水线去处理，从而提高整体的执行效率。",[2419,13984],{},[331,13986,13988],{"id":13987},"请阐述普通加法器与进位保留加法器的异同请阐述wallace乘法器的概念","请阐述普通加法器与进位保留加法器的异同？请阐述Wallace乘法器的概念？",[960,13990,13992],{"id":13991},"普通加法器-以行波进位加法器为例",[339,13993,13994],{},"普通加法器 (以行波进位加法器为例)",[356,13996,13997,14002,14043],{},[359,13998,13999,14001],{},[339,14000,12436],{}," 这是我们最熟悉的加法器，它模拟了“竖式加法”。它由多个全加器 (Full Adder) 级联而成。",[359,14003,14004,14007,14008,2116,14011],{},[339,14005,14006],{},"工作方式："," 它的核心特点是",[339,14009,14010],{},"进位会立即传播",[356,14012,14013,14029],{},[359,14014,14015,14016,12070,14018,14020,14021,399,14024,564],{},"每一个全加器 (FA) 接收三个输入：",[362,14017,4612],{"code":4612},[362,14019,4619],{"code":4619}," 和来自",[339,14022,14023],{},"低一位的进位",[339,14025,14026],{},[362,14027,14028],{"code":14028},"cin",[359,14030,14031,14032,14035,14036,14039,14040,2098],{},"它产生两个输出：",[362,14033,14034],{"code":14034},"sum"," (本位和) 和 ",[362,14037,14038],{"code":14038},"cout"," (到",[339,14041,14042],{},"高一位的进位",[359,14044,14045,14048],{},[339,14046,14047],{},"异同点 (异)：",[356,14049,14050,14062],{},[359,14051,14052,14055,14056,14058,14059,14061],{},[339,14053,14054],{},"依赖性："," 高位的计算",[339,14057,525],{},"等待低位全加器计算出 ",[362,14060,14038],{"code":14038}," 信号。",[359,14063,14064,14067,14068,14071,14072,14100,14101,14129,14130,14158],{},[339,14065,14066],{},"延迟："," 这种依赖性形成了一条很长的",[339,14069,14070],{},"“进位链”"," 。在 ",[1719,14073,14075,14088],{"className":14074},[2629],[1719,14076,14078],{"className":14077},[2633],[2635,14079,14080],{"xmlns":2637},[2639,14081,14082,14086],{},[2642,14083,14084],{},[3932,14085,8771],{},[2649,14087,8771],{"encoding":2651},[1719,14089,14091],{"className":14090,"ariaHidden":2657},[2656],[1719,14092,14094,14097],{"className":14093},[2661],[1719,14095],{"className":14096,"style":3974},[2665],[1719,14098,8771],{"className":14099,"style":8887},[3978,3979]," 位加法器中，最坏情况的延迟与 ",[1719,14102,14104,14117],{"className":14103},[2629],[1719,14105,14107],{"className":14106},[2633],[2635,14108,14109],{"xmlns":2637},[2639,14110,14111,14115],{},[2642,14112,14113],{},[3932,14114,8771],{},[2649,14116,8771],{"encoding":2651},[1719,14118,14120],{"className":14119,"ariaHidden":2657},[2656],[1719,14121,14123,14126],{"className":14122},[2661],[1719,14124],{"className":14125,"style":3974},[2665],[1719,14127,8771],{"className":14128,"style":8887},[3978,3979]," 成正比。这在 ",[1719,14131,14133,14146],{"className":14132},[2629],[1719,14134,14136],{"className":14135},[2633],[2635,14137,14138],{"xmlns":2637},[2639,14139,14140,14144],{},[2642,14141,14142],{},[3932,14143,8771],{},[2649,14145,8771],{"encoding":2651},[1719,14147,14149],{"className":14148,"ariaHidden":2657},[2656],[1719,14150,14152,14155],{"className":14151},[2661],[1719,14153],{"className":14154,"style":3974},[2665],[1719,14156,8771],{"className":14157,"style":8887},[3978,3979]," 很大时会非常慢。",[960,14160,14162],{"id":14161},"进位保留加法器-carry-save-adder-csa",[339,14163,14164],{},"进位保留加法器 (Carry-Save Adder, CSA)",[356,14166,14167,14176,14491],{},[359,14168,14169,14171,14172,14175],{},[339,14170,12436],{}," CSA 不是用来计算两个数的最终和，而是用来",[339,14173,14174],{},"同时压缩三个数","。它由一组并行的全加器构成，但这些全加器之间的连接方式与普通加法器完全不同。",[359,14177,14178,14007,14180,2116,14183],{},[339,14179,14006],{},[339,14181,14182],{},"保留进位，不立即传播",[356,14184,14185,14223],{},[359,14186,14187,14188,14216,14217,1762,14219,1762,14221,1274],{},"它接收三个 ",[1719,14189,14191,14204],{"className":14190},[2629],[1719,14192,14194],{"className":14193},[2633],[2635,14195,14196],{"xmlns":2637},[2639,14197,14198,14202],{},[2642,14199,14200],{},[3932,14201,8771],{},[2649,14203,8771],{"encoding":2651},[1719,14205,14207],{"className":14206,"ariaHidden":2657},[2656],[1719,14208,14210,14213],{"className":14209},[2661],[1719,14211],{"className":14212,"style":3974},[2665],[1719,14214,8771],{"className":14215,"style":8887},[3978,3979]," 位的输入（例如 ",[362,14218,3939],{"code":3939},[362,14220,3945],{"code":3945},[362,14222,3953],{"code":3953},[359,14224,14225,14226,14254,14255],{},"它产生两个 ",[1719,14227,14229,14242],{"className":14228},[2629],[1719,14230,14232],{"className":14231},[2633],[2635,14233,14234],{"xmlns":2637},[2639,14235,14236,14240],{},[2642,14237,14238],{},[3932,14239,8771],{},[2649,14241,8771],{"encoding":2651},[1719,14243,14245],{"className":14244,"ariaHidden":2657},[2656],[1719,14246,14248,14251],{"className":14247},[2661],[1719,14249],{"className":14250,"style":3974},[2665],[1719,14252,8771],{"className":14253,"style":8887},[3978,3979]," 位的输出：\n",[724,14256,14257,14376],{},[359,14258,14259,14290,14291,11284,14360,1762,14363,1762,14366,14369,14370,13674,14373,1274],{},[339,14260,14261,14289],{},[1719,14262,14264,14277],{"className":14263},[2629],[1719,14265,14267],{"className":14266},[2633],[2635,14268,14269],{"xmlns":2637},[2639,14270,14271,14275],{},[2642,14272,14273],{},[3932,14274,3934],{},[2649,14276,3934],{"encoding":2651},[1719,14278,14280],{"className":14279,"ariaHidden":2657},[2656],[1719,14281,14283,14286],{"className":14282},[2661],[1719,14284],{"className":14285,"style":3974},[2665],[1719,14287,3934],{"className":14288,"style":3980},[3978,3979]," (Sum)："," 每一位 ",[1719,14292,14294,14311],{"className":14293},[2629],[1719,14295,14297],{"className":14296},[2633],[2635,14298,14299],{"xmlns":2637},[2639,14300,14301,14309],{},[2642,14302,14303],{},[3949,14304,14305,14307],{},[3932,14306,3934],{},[3932,14308,3958],{},[2649,14310,8525],{"encoding":2651},[1719,14312,14314],{"className":14313,"ariaHidden":2657},[2656],[1719,14315,14317,14320],{"className":14316},[2661],[1719,14318],{"className":14319,"style":4038},[2665],[1719,14321,14323,14326],{"className":14322},[3978],[1719,14324,3934],{"className":14325,"style":3980},[3978,3979],[1719,14327,14329],{"className":14328},[4049],[1719,14330,14332,14352],{"className":14331},[4053,4054],[1719,14333,14335,14349],{"className":14334},[4058],[1719,14336,14338],{"className":14337,"style":4063},[4062],[1719,14339,14340,14343],{"style":8555},[1719,14341],{"className":14342,"style":4071},[4070],[1719,14344,14346],{"className":14345},[4075,4076,4077,4078],[1719,14347,3958],{"className":14348},[3978,3979,4078],[1719,14350,4090],{"className":14351},[4089],[1719,14353,14355],{"className":14354},[4058],[1719,14356,14358],{"className":14357,"style":4097},[4062],[1719,14359],{},[362,14361,14362],{"code":14362},"A[i]",[362,14364,14365],{"code":14365},"B[i]",[362,14367,14368],{"code":14368},"C[i]"," 的",[339,14371,14372],{},"本位和",[362,14374,14375],{"code":14375},"A[i] ^ B[i] ^ C[i]",[359,14377,14378,14290,14409,11284,14479,1762,14481,1762,14483,14369,14485,13674,14488,1274],{},[339,14379,14380,14408],{},[1719,14381,14383,14396],{"className":14382},[2629],[1719,14384,14386],{"className":14385},[2633],[2635,14387,14388],{"xmlns":2637},[2639,14389,14390,14394],{},[2642,14391,14392],{},[3932,14393,3953],{},[2649,14395,3953],{"encoding":2651},[1719,14397,14399],{"className":14398,"ariaHidden":2657},[2656],[1719,14400,14402,14405],{"className":14401},[2661],[1719,14403],{"className":14404,"style":3974},[2665],[1719,14406,3953],{"className":14407,"style":4045},[3978,3979]," (Carry)：",[1719,14410,14412,14430],{"className":14411},[2629],[1719,14413,14415],{"className":14414},[2633],[2635,14416,14417],{"xmlns":2637},[2639,14418,14419,14427],{},[2642,14420,14421],{},[3949,14422,14423,14425],{},[3932,14424,3953],{},[3932,14426,3958],{},[2649,14428,14429],{"encoding":2651},"C_i",[1719,14431,14433],{"className":14432,"ariaHidden":2657},[2656],[1719,14434,14436,14439],{"className":14435},[2661],[1719,14437],{"className":14438,"style":4038},[2665],[1719,14440,14442,14445],{"className":14441},[3978],[1719,14443,3953],{"className":14444,"style":4045},[3978,3979],[1719,14446,14448],{"className":14447},[4049],[1719,14449,14451,14471],{"className":14450},[4053,4054],[1719,14452,14454,14468],{"className":14453},[4058],[1719,14455,14457],{"className":14456,"style":4063},[4062],[1719,14458,14459,14462],{"style":4066},[1719,14460],{"className":14461,"style":4071},[4070],[1719,14463,14465],{"className":14464},[4075,4076,4077,4078],[1719,14466,3958],{"className":14467},[3978,3979,4078],[1719,14469,4090],{"className":14470},[4089],[1719,14472,14474],{"className":14473},[4058],[1719,14475,14477],{"className":14476,"style":4097},[4062],[1719,14478],{},[362,14480,14362],{"code":14362},[362,14482,14365],{"code":14365},[362,14484,14368],{"code":14368},[339,14486,14487],{},"本位进位",[362,14489,14490],{"code":14490},"(A[i]&B[i]) | (A[i]&C[i]) | (B[i]&C[i])",[359,14492,14493,14495],{},[339,14494,14047],{},[356,14496,14497,14516],{},[359,14498,14499,14501,14502,1196,14505,14507,14508,14511,14512,14515],{},[339,14500,14054],{}," 每一位（",[362,14503,14504],{"code":14504},"S[i]",[362,14506,14368],{"code":14368},"）的计算都是",[339,14509,14510],{},"完全独立","的，",[339,14513,14514],{},"不依赖","于任何其他位的进位。",[359,14517,14518,14520,14521],{},[339,14519,14066],{}," 延迟是恒定的，仅为一个全加器的延迟，与输入位数 N 无关。\n",[339,14522,14523],{},"总结对比：",[431,14525,14526,14538],{},[434,14527,14528],{},[437,14529,14530,14532,14535],{},[440,14531,13800],{},[440,14533,14534],{},"普通加法器 (如：行波进位)",[440,14536,14537],{},"进位保留加法器 (CSA)",[456,14539,14540,14580,14749,14789,14829],{},[437,14541,14542,14545,14577],{},[461,14543,14544],{},"功能",[461,14546,14547,14548,14576],{},"计算 2 个 ",[1719,14549,14551,14564],{"className":14550},[2629],[1719,14552,14554],{"className":14553},[2633],[2635,14555,14556],{"xmlns":2637},[2639,14557,14558,14562],{},[2642,14559,14560],{},[3932,14561,8771],{},[2649,14563,8771],{"encoding":2651},[1719,14565,14567],{"className":14566,"ariaHidden":2657},[2656],[1719,14568,14570,14573],{"className":14569},[2661],[1719,14571],{"className":14572,"style":3974},[2665],[1719,14574,8771],{"className":14575,"style":8887},[3978,3979]," 位数的和",[461,14578,14579],{},"压缩 3 个 N 位数",[437,14581,14582,14584,14639],{},[461,14583,1468],{},[461,14585,14586,14587,14638],{},"1 个 ",[1719,14588,14590,14608],{"className":14589},[2629],[1719,14591,14593],{"className":14592},[2633],[2635,14594,14595],{"xmlns":2637},[2639,14596,14597,14605],{},[2642,14598,14599,14601,14603],{},[3932,14600,8771],{},[2645,14602,1966],{},[5072,14604,655],{},[2649,14606,14607],{"encoding":2651},"N+1",[1719,14609,14611,14629],{"className":14610,"ariaHidden":2657},[2656],[1719,14612,14614,14617,14620,14623,14626],{"className":14613},[2661],[1719,14615],{"className":14616,"style":3998},[2665],[1719,14618,8771],{"className":14619,"style":8887},[3978,3979],[1719,14621],{"className":14622,"style":4005},[3984],[1719,14624,1966],{"className":14625},[4009],[1719,14627],{"className":14628,"style":4005},[3984],[1719,14630,14632,14635],{"className":14631},[2661],[1719,14633],{"className":14634,"style":5749},[2665],[1719,14636,655],{"className":14637},[3978]," 位的结果 (最终的和)",[461,14640,14641,14642,14692,14693,1196,14721,1569],{},"2 个 ",[1719,14643,14645,14662],{"className":14644},[2629],[1719,14646,14648],{"className":14647},[2633],[2635,14649,14650],{"xmlns":2637},[2639,14651,14652,14660],{},[2642,14653,14654,14656,14658],{},[3932,14655,8771],{},[2645,14657,1966],{},[5072,14659,655],{},[2649,14661,14607],{"encoding":2651},[1719,14663,14665,14683],{"className":14664,"ariaHidden":2657},[2656],[1719,14666,14668,14671,14674,14677,14680],{"className":14667},[2661],[1719,14669],{"className":14670,"style":3998},[2665],[1719,14672,8771],{"className":14673,"style":8887},[3978,3979],[1719,14675],{"className":14676,"style":4005},[3984],[1719,14678,1966],{"className":14679},[4009],[1719,14681],{"className":14682,"style":4005},[3984],[1719,14684,14686,14689],{"className":14685},[2661],[1719,14687],{"className":14688,"style":5749},[2665],[1719,14690,655],{"className":14691},[3978]," 位的结果 (",[1719,14694,14696,14709],{"className":14695},[2629],[1719,14697,14699],{"className":14698},[2633],[2635,14700,14701],{"xmlns":2637},[2639,14702,14703,14707],{},[2642,14704,14705],{},[3932,14706,3934],{},[2649,14708,3934],{"encoding":2651},[1719,14710,14712],{"className":14711,"ariaHidden":2657},[2656],[1719,14713,14715,14718],{"className":14714},[2661],[1719,14716],{"className":14717,"style":3974},[2665],[1719,14719,3934],{"className":14720,"style":3980},[3978,3979],[1719,14722,14724,14737],{"className":14723},[2629],[1719,14725,14727],{"className":14726},[2633],[2635,14728,14729],{"xmlns":2637},[2639,14730,14731,14735],{},[2642,14732,14733],{},[3932,14734,3953],{},[2649,14736,3953],{"encoding":2651},[1719,14738,14740],{"className":14739,"ariaHidden":2657},[2656],[1719,14741,14743,14746],{"className":14742},[2661],[1719,14744],{"className":14745,"style":3974},[2665],[1719,14747,3953],{"className":14748,"style":4045},[3978,3979],[437,14750,14751,14754,14757],{},[461,14752,14753],{},"进位",[461,14755,14756],{},"进位立即从低位传播到高位",[461,14758,14759,14760,14788],{},"进位被保留在原位（输出为 ",[1719,14761,14763,14776],{"className":14762},[2629],[1719,14764,14766],{"className":14765},[2633],[2635,14767,14768],{"xmlns":2637},[2639,14769,14770,14774],{},[2642,14771,14772],{},[3932,14773,3953],{},[2649,14775,3953],{"encoding":2651},[1719,14777,14779],{"className":14778,"ariaHidden":2657},[2656],[1719,14780,14782,14785],{"className":14781},[2661],[1719,14783],{"className":14784,"style":3974},[2665],[1719,14786,3953],{"className":14787,"style":4045},[3978,3979],"），不横向传播",[437,14790,14791,14794,14826],{},[461,14792,14793],{},"延迟",[461,14795,14796,14797,14825],{},"慢，延迟与位数 ",[1719,14798,14800,14813],{"className":14799},[2629],[1719,14801,14803],{"className":14802},[2633],[2635,14804,14805],{"xmlns":2637},[2639,14806,14807,14811],{},[2642,14808,14809],{},[3932,14810,8771],{},[2649,14812,8771],{"encoding":2651},[1719,14814,14816],{"className":14815,"ariaHidden":2657},[2656],[1719,14817,14819,14822],{"className":14818},[2661],[1719,14820],{"className":14821,"style":3974},[2665],[1719,14823,8771],{"className":14824,"style":8887},[3978,3979]," 相关 (存在进位链)",[461,14827,14828],{},"快，延迟恒定（仅1个全加器延迟）",[437,14830,14831,14834,14837],{},[461,14832,14833],{},"用途",[461,14835,14836],{},"用于计算最终结果",[461,14838,14839],{},"用于乘法器中，快速压缩多个中间数",[960,14841,14843],{"id":14842},"wallace-乘法器的概念","Wallace 乘法器的概念",[274,14845,14846,14847,14850,14851,564],{},"Wallace 乘法器是一种高性能的",[339,14848,14849],{},"并行乘法器","，它的核心思想是利用我们上面提到的",[339,14852,14853],{},"进位保留加法器 (CSA) 来实现快速的中间产物压缩",[274,14855,14856],{},"一个乘法过程可以分为三个步骤，Wallace 树主要优化了第二步：",[724,14858,14859,14925,15147],{},[359,14860,14861,14864],{},[339,14862,14863],{},"步骤一：生成部分积",[356,14865,14866],{},[359,14867,14868,14869,14871,14872,14924],{},"将乘数的每一位与被乘数的每一位进行“与”(",[362,14870,2533],{"code":2533},")操作，产生 ",[1719,14873,14875,14894],{"className":14874},[2629],[1719,14876,14878],{"className":14877},[2633],[2635,14879,14880],{"xmlns":2637},[2639,14881,14882,14891],{},[2642,14883,14884,14886,14889],{},[3932,14885,8771],{},[2645,14887,14888],{},"×",[3932,14890,8771],{},[2649,14892,14893],{"encoding":2651},"N \\times N",[1719,14895,14897,14915],{"className":14896,"ariaHidden":2657},[2656],[1719,14898,14900,14903,14906,14909,14912],{"className":14899},[2661],[1719,14901],{"className":14902,"style":3998},[2665],[1719,14904,8771],{"className":14905,"style":8887},[3978,3979],[1719,14907],{"className":14908,"style":4005},[3984],[1719,14910,14888],{"className":14911},[4009],[1719,14913],{"className":14914,"style":4005},[3984],[1719,14916,14918,14921],{"className":14917},[2661],[1719,14919],{"className":14920,"style":3974},[2665],[1719,14922,8771],{"className":14923,"style":8887},[3978,3979]," 个部分积。这一步是完全并行的。",[359,14926,14927,14930],{},[339,14928,14929],{},"步骤二：压缩部分积 (Wallace 树的核心)",[356,14931,14932,14935,14941],{},[359,14933,14934],{},"这是最慢的步骤。我们现在有 N 行部分积需要相加。",[359,14936,14937,14940],{},[339,14938,14939],{},"普通乘法器："," 会一行一行地相加，每加一次都要经历一次缓慢的进位传播。",[359,14942,14943,14946,14947,14950,14951],{},[339,14944,14945],{},"Wallace 乘法器："," 它不一行一行加。它使用",[339,14948,14949],{},"多层 CSA"," 构成一个“树形”结构。\n",[356,14952,14953,14989,15137,15144],{},[359,14954,14955,14956,14984,14985,14988],{},"它将 ",[1719,14957,14959,14972],{"className":14958},[2629],[1719,14960,14962],{"className":14961},[2633],[2635,14963,14964],{"xmlns":2637},[2639,14965,14966,14970],{},[2642,14967,14968],{},[3932,14969,8771],{},[2649,14971,8771],{"encoding":2651},[1719,14973,14975],{"className":14974,"ariaHidden":2657},[2656],[1719,14976,14978,14981],{"className":14977},[2661],[1719,14979],{"className":14980,"style":3974},[2665],[1719,14982,8771],{"className":14983,"style":8887},[3978,3979]," 行部分积",[339,14986,14987],{},"每 3 行分为一组","，输入到一个 CSA 阵列中。",[359,14990,14991,14992,15107,15108,15136],{},"每一层 CSA 都会将输入的行数 K 减少到 ",[1719,14993,14995,15018],{"className":14994},[2629],[1719,14996,14998],{"className":14997},[2633],[2635,14999,15000],{"xmlns":2637},[2639,15001,15002,15015],{},[2642,15003,15004,15012],{},[15005,15006,15007,15009],"mfrac",{},[5072,15008,7930],{},[5072,15010,15011],{},"3",[3932,15013,15014],{},"K",[2649,15016,15017],{"encoding":2651},"\\frac{2}{3}K",[1719,15019,15021],{"className":15020,"ariaHidden":2657},[2656],[1719,15022,15024,15028,15104],{"className":15023},[2661],[1719,15025],{"className":15026,"style":15027},[2665],"height:1.1901em;vertical-align:-0.345em;",[1719,15029,15031,15035,15101],{"className":15030},[3978],[1719,15032],{"className":15033},[4267,15034],"nulldelimiter",[1719,15036,15038],{"className":15037},[15005],[1719,15039,15041,15092],{"className":15040},[4053,4054],[1719,15042,15044,15089],{"className":15043},[4058],[1719,15045,15048,15063,15074],{"className":15046,"style":15047},[4062],"height:0.8451em;",[1719,15049,15051,15054],{"style":15050},"top:-2.655em;",[1719,15052],{"className":15053,"style":11874},[4070],[1719,15055,15057],{"className":15056},[4075,4076,4077,4078],[1719,15058,15060],{"className":15059},[3978,4078],[1719,15061,15011],{"className":15062},[3978,4078],[1719,15064,15066,15069],{"style":15065},"top:-3.23em;",[1719,15067],{"className":15068,"style":11874},[4070],[1719,15070],{"className":15071,"style":15073},[15072],"frac-line","border-bottom-width:0.04em;",[1719,15075,15077,15080],{"style":15076},"top:-3.394em;",[1719,15078],{"className":15079,"style":11874},[4070],[1719,15081,15083],{"className":15082},[4075,4076,4077,4078],[1719,15084,15086],{"className":15085},[3978,4078],[1719,15087,7930],{"className":15088},[3978,4078],[1719,15090,4090],{"className":15091},[4089],[1719,15093,15095],{"className":15094},[4058],[1719,15096,15099],{"className":15097,"style":15098},[4062],"height:0.345em;",[1719,15100],{},[1719,15102],{"className":15103},[4292,15034],[1719,15105,15014],{"className":15106,"style":4045},[3978,3979],"(3行输入 ",[1719,15109,15111,15124],{"className":15110},[2629],[1719,15112,15114],{"className":15113},[2633],[2635,15115,15116],{"xmlns":2637},[2639,15117,15118,15122],{},[2642,15119,15120],{},[2645,15121,2647],{},[2649,15123,2652],{"encoding":2651},[1719,15125,15127],{"className":15126,"ariaHidden":2657},[2656],[1719,15128,15130,15133],{"className":15129},[2661],[1719,15131],{"className":15132,"style":2666},[2665],[1719,15134,2647],{"className":15135},[2670]," 2行输出)。",[359,15138,15139,15140,15143],{},"它不断重复这个过程，直到最后",[339,15141,15142],{},"只剩下 2 行","需要相加。",[359,15145,15146],{},"这个树形压缩过程非常快，因为每一层 CSA 的延迟都是恒定的。",[359,15148,15149,15152],{},[339,15150,15151],{},"步骤三：最终加法",[356,15153,15154],{},[359,15155,15156,15157,15160,15161,15164,15165,15168,15169,15172],{},"当部分积被压缩到只剩 2 行时（即 CSA 的 S 和 C 向量），Wallace 树会使用一个",[339,15158,15159],{},"普通的、高速的加法器","（例如先行进位加法器）来计算这两行的最终和，从而得到乘法结果。\n",[339,15162,15163],{},"总结："," Wallace 树的核心概念是，在计算乘法时，先",[339,15166,15167],{},"不进行任何进位传播","，而是利用 CSA 树形结构，以最快的速度（对数级延迟）将 N 行部分积",[339,15170,15171],{},"并行地","压缩为 2 行，最后才用一个单独的加法器完成一次性的进位传播。",[2419,15174],{},[331,15176,15178],{"id":15177},"以讲义11-rtl设计-示例算法状态机的初始流图中的初始流图控制器asm图数据通路状态转换图的转换为例叙述asm图方法解释asm图方法与初始流图控制器asm图有限状态机与数据通路的关系系统框图叙述通常采用什么方式来进行有限状态机与数据通路的代码编写","以”讲义11 RTL设计-示例：算法状态机的初始流图”中的初始流图、控制器ASM图、数据通路、状态转换图的转换为例，叙述ASM图方法，解释ASM图方法与初始流图、控制器ASM图、有限状态机与数据通路的关系、系统框图。叙述通常采用什么方式来进行有限状态机与数据通路的代码编写",[274,15180,15181],{},[277,15182,15183],{},"ASM图方法概述+关系总结+FSM与数据通路的代码编写方式",[960,15185,15187],{"id":15186},"asm图方法概述","ASM图方法概述",[274,15189,15190,15191,15194],{},"ASM（Algorithmic State Machine，算法状态机）图方法是一种用于RTL（寄存器传输级）设计的结构化方法 。它首先通过类似流程图的形式（即“初始流图”）来描述一个算法或功能，此时并不严格区分数据通路和控制 。然后，通过一个“精化”（Refinement）步骤，将这个功能描述划分为",[339,15192,15193],{},"数据通路（Datapath）和控制器（Controller）"," 两部分，并最终推导出控制器的有限状态机（FSM）。",[274,15196,15197],{},"就是前端设计的前三点",[960,15199,15200],{"id":15200},"关系总结",[356,15202,15203,15213,15235,15245],{},[359,15204,15205,15208,15209,15212],{},[339,15206,15207],{},"ASM图方法与初始流图","： 初始流图是ASM方法的",[339,15210,15211],{},"起点"," 。它从算法层面描述了“做什么”（What），而不关心“谁来做”（How）。",[359,15214,15215,15218,15219,15222,15223,15226,15227,15230,15231,15234],{},[339,15216,15217],{},"ASM图方法与控制器ASM图","： 控制器ASM图是初始流图经过“架构划分”后的",[339,15220,15221],{},"精化结果"," 。它描述了",[339,15224,15225],{},"控制器","的逻辑，即如何通过发送控制信号（如 ",[362,15228,15229],{"code":15229},"load x","）和接收结果信号（如 ",[362,15232,15233],{"code":15233},"xcompare","）来复现初始流图的功能。",[359,15236,15237,15240,15241,15244],{},[339,15238,15239],{},"ASM图方法与系统框图及数据通路","： ASM图方法是一种“数据通路-控制器”的架构划分方法 。系统框图是这种划分的",[339,15242,15243],{},"高层视图"," 。数据通路是这种划分下的“执行单元”，它根据ASM图方法推导出的控制信号来执行具体的数据操作 。",[359,15246,15247,15250,15251,15254,15255,15258],{},[339,15248,15249],{},"ASM图方法与有限状态机 (FSM)","： FSM是ASM图方法中",[339,15252,15253],{},"控制器的最终实现"," 。控制器ASM图 和状态转换图  只是FSM的",[339,15256,15257],{},"两种不同表示形式","，ASM图（流程图形式）更易于从算法转换而来，而STG（状态图形式）更接近最终的硬件实现",[960,15260,15262],{"id":15261},"fsm与数据通路的代码编写方式","FSM与数据通路的代码编写方式",[274,15264,15265],{},"3+2个always(见前)",[2419,15267],{},[331,15269,15271],{"id":15270},"以下代码可以综合吗并根据以下代码解释什么是综合","以下代码可以综合吗？并根据以下代码解释什么是综合？",[1410,15273,15276],{"className":15274,"code":15275,"language":1415,"meta":1416},[1413],"always @(a or b or c or d)\n  begin\n    t1 \u003C= a & b;\n    t2 \u003C= c | d;\n    out \u003C= t1 & t2;\n  end\n",[362,15277,15275],{"__ignoreMap":1416},[274,15279,15280],{},"不能综合",[356,15282,15283,15300],{},[359,15284,15285,15288,15289,15292,15293,2480,15296,15299],{},[289,15286,15287],{},"综合前"," (仿真行为)： 在仿真器中，非阻塞赋值 (\u003C=) 会导致",[362,15290,15291],{"code":15291},"out","在计算时使用的是旧的",[362,15294,15295],{"code":15295},"t1",[362,15297,15298],{"code":15298},"t2","的值。这不符合组合逻辑的定义，仿真行为是错误的。",[359,15301,15302,15305,15306,564],{},[289,15303,15304],{},"综合后"," (硬件行为)： 综合工具很可能会忽略(\u003C=)的错误用法，将其“修正”并综合为它认为你想要的纯组合逻辑，即",[362,15307,15308],{"code":15308},"out = (a & b) & (c | d)",[960,15310,15312],{"id":15311},"根据可综合的关键","根据可综合的关键：",[960,15314,15316],{"id":15315},"_1-基于rtl设计风格的前提","1 基于RTL设计(风格)的前提；",[960,15318,15320],{"id":15319},"_2-可以通过综合工具将verilog行为级代码变成基于特定工艺的标准单元的门级表示","2 可以通过综合工具将Verilog行为级代码变成基于特定工艺的标准单元的门级表示；",[960,15322,15324],{"id":15323},"_3-综合前后的行为未改变","3 综合前后的行为未改变。",[960,15326,15328],{"id":15327},"请指出以下代码可以综合吗如果不能综合请指出与前述的哪些关键存在违背的情况","请指出以下代码可以综合吗？如果不能综合，请指出与前述的哪些关键存在违背的情况",[960,15330,15331],{"id":15331},"代码分析",[274,15333,15334,15335,1762,15337,1762,15339,1762,15341,15344,15345,564],{},"这段代码描述了一个组合逻辑电路。它的意图是根据输入 ",[362,15336,4612],{"code":4612},[362,15338,4619],{"code":4619},[362,15340,5064],{"code":5064},[362,15342,15343],{"code":15343},"d"," 的变化来计算输出 ",[362,15346,15291],{"code":15291},[274,15348,15349],{},[339,15350,15351],{},"这段代码在语法上是有效的，但它不符合标准的、推荐的可综合 RTL 设计风格，因此严格来说不应该被认为是可综合的，或者至少是“不推荐综合”的。",[274,15353,15354,15355,1196,15358,564],{},"它主要违背了提出的 ",[339,15356,15357],{},"关键1（基于RTL设计风格的前提）",[339,15359,15360],{},"关键3（综合前后的行为未改变）",[2419,15362],{},[960,15364,15365],{"id":15365},"详细解释与违背情况",[990,15367,15369],{"id":15368},"关键1基于rtl设计风格的前提","关键1：基于RTL设计(风格)的前提",[274,15371,15372],{},"这条关键是核心问题所在。在标准的 RTL 设计实践中，对组合逻辑和时序逻辑的编码风格有明确的区分：",[356,15374,15375,15395],{},[359,15376,15377,15379,15380,15382,15383,15386,15387,15389,15393,564],{},[339,15378,428],{},": 使用 ",[362,15381,425],{"code":425}," 或者 ",[362,15384,15385],{"code":15385},"always @(所有输入信号)","，并且内部必须使用",[339,15388,2218],{},[339,15390,15391],{},[362,15392,1552],{"code":1552},[339,15394,1569],{},[359,15396,15397,15379,15399,1120,15401,15386,15404,15406,15410,2116,15412],{},[339,15398,419],{},[362,15400,415],{"code":415},[362,15402,15403],{"code":15403},"always @(negedge rst_n)",[339,15405,2199],{},[339,15407,15408],{},[362,15409,1564],{"code":1564},[339,15411,1569],{},[339,15413,15414],{},"这段代码的违背之处在于：",[274,15416,15417,15418,15420,15421,15423,15427,15429],{},"它描述的是一个",[339,15419,428],{},"（敏感列表包含所有输入信号，没有时钟），但却使用了",[339,15422,2199],{},[339,15424,15425],{},[362,15426,1564],{"code":1564},[339,15428,1569],{},"，这通常是为时序逻辑保留的。",[990,15431,15433],{"id":15432},"关键3综合前后的行为未改变","关键3：综合前后的行为未改变",[274,15435,15436],{},"这条关键是衡量综合正确性的金标准",[356,15438,15439,15515,15521],{},[359,15440,15441,15442],{},"仿真器会严格遵守非阻塞赋值的定义：在 always 块结束时，才统一更新 \u003C= 左侧的信号值。\n",[724,15443,15444,15454,15466,15475,15503],{},[359,15445,15446,15447,15450,15451,15453],{},"当 ",[362,15448,15449],{"code":15449},"a, b, c, d"," 中任何一个变化，",[362,15452,540],{"code":540}," 块被触发。",[359,15455,15456,15459,15460,15463,15464,564],{},[362,15457,15458],{"code":15458},"a & b"," 的结果被",[339,15461,15462],{},"调度","给 ",[362,15465,15295],{"code":15295},[359,15467,15468,15459,15471,15463,15473,564],{},[362,15469,15470],{"code":15470},"c | d",[339,15472,15462],{},[362,15474,15298],{"code":15298},[359,15476,15477,15459,15480,15463,15482,564,15484,15487,15488,15490,15491,1196,15493,15495,15496,15498,15499,15502],{},[362,15478,15479],{"code":15479},"t1 & t2",[339,15481,15462],{},[362,15483,15291],{"code":15291},[339,15485,15486],{},"请注意","：此时用于计算 ",[362,15489,15291],{"code":15291}," 的 ",[362,15492,15295],{"code":15295},[362,15494,15298],{"code":15298}," 仍然是它们在进入这个 ",[362,15497,540],{"code":540}," 块之前的",[339,15500,15501],{},"旧值","，因为新的值要到块结束才更新。",[359,15504,15505,15507,15508,1762,15510,1762,15512,15514],{},[362,15506,540],{"code":540}," 块执行结束，",[362,15509,15295],{"code":15295},[362,15511,15298],{"code":15298},[362,15513,15291],{"code":15291}," 的值被同时更新。",[359,15516,15517,15518,15520],{},"这种行为实际上描述了一个",[339,15519,503],{}," 或者说是一个依赖于旧值的时序行为，而不是一个纯粹的组合逻辑路径。",[359,15522,15523,15526,15527,15530,15531,15534],{},[339,15524,15525],{},"违背之处在于","：代码的",[339,15528,15529],{},"仿真行为","（由于非阻塞赋值，表现出类似时序的特性，依赖于旧值）与",[339,15532,15533],{},"综合后的电路行为","（一个纯粹的、无记忆的组合逻辑电路）存在潜在的不匹配。在更复杂的逻辑中，这种不匹配可能会导致功能错误，即综合前后的行为发生了改变。",[2419,15536],{},[960,15538,15539],{"id":15539},"正确的可综合写法",[274,15541,15542],{},"为了清晰地描述这个组合逻辑，代码应该修改为使用阻塞赋值 (=):",[1410,15544,15547],{"className":15545,"code":15546,"language":1415,"meta":1416},[1413],"\u002F\u002F 推荐的写法always @(a or b or c or d) \u002F\u002F 或者使用 always @(*)begin\n  t1 = a & b;     \u002F\u002F 使用阻塞赋值\n  t2 = c | d;     \u002F\u002F 使用阻塞赋值\n  out = t1 & t2;  \u002F\u002F 使用阻塞赋值end\n",[362,15548,15546],{"__ignoreMap":1416},[274,15550,15551,15552,15554],{},"或者使用 ",[362,15553,376],{"code":376}," 语句，这是描述纯组合逻辑最直接、最不容易出错的方式：",[1410,15556,15559],{"className":15557,"code":15558,"language":6586},[8834],"\u002F\u002F 最佳写法wire t1, t2;\nassign t1 = a & b;\nassign t2 = c | d;\nassign out = t1 & t2;\n",[362,15560,15558],{"__ignoreMap":1416},[274,15562,15563,15564,15567],{},"总结一下，此段代码",[339,15565,15566],{},"不推荐用于综合","，因为它违反了标准的RTL设计风格，并带来了仿真与综合结果不一致的巨大风险。",[960,15569,15570],{"id":15570},"什么是综合",[960,15572,15574],{"id":15573},"综合是通过代工厂的标准门级单元库将rtl代码映射成电路实现的并且综合前后的模拟行为一致-1",[277,15575,3785],{},[274,15577,15578,15581,15582,15585,15589,15591,15596,15599],{},[339,15579,15580],{},"基于RTL设计风格","： 综合工具（如 Design Compiler） 的主要工作对象是RTL（Register Transfer Level）风格的代码 。这意味着设计是",[277,15583,15584],{},"围绕",[277,15586,15587],{},[339,15588,428],{},[277,15590,2480],{},[277,15592,15593],{},[339,15594,15595],{},"时序单元",[339,15597,15598],{},"（如边沿触发器）"," 来构建的 。结构化的RTL是保证综合质量的最重要风格 。",[274,15601,15602,15605,15606,15609,399,15614,1101],{},[339,15603,15604],{},"转换为门级表示","： 综合工具读取你的 Verilog 代码 ，并",[277,15607,15608],{},"使用特定的",[277,15610,15611],{},[339,15612,15613],{},"工艺库（标准单元库）",[277,15615,15616],{},"，将其自动映射为由与门、或门、触发器等基本逻辑单元构成的电路实现（即门级网表）",[274,15618,15619,15622,15623,15626],{},[339,15620,15621],{},"保持行为一致性","： 这是综合的根本原则。",[277,15624,15625],{},"综合前（RTL级别）的功能模拟行为必须与综合后（门级网表）的模拟行为保持一致"," 。综合工具会消除繁琐的布尔逻辑映射和电路实现工作 ，但设计的逻辑功能不会改变。",{"title":1416,"searchDepth":13134,"depth":13134,"links":15628},[15629,15661,15696,15761],{"id":322,"depth":1421,"text":323,"children":15630},[15631,15632,15633,15634,15636,15637,15638,15639,15640,15641,15647,15648,15649,15650,15651,15652,15654,15655,15656,15657,15659,15660],{"id":333,"depth":13134,"text":334},{"id":348,"depth":13134,"text":349},{"id":567,"depth":13134,"text":568},{"id":640,"depth":13134,"text":15635},"逻辑电平----0\u002F1\u002Fz\u002Fx",{"id":717,"depth":13134,"text":717},{"id":798,"depth":13134,"text":798},{"id":825,"depth":13134,"text":825},{"id":548,"depth":13134,"text":548},{"id":540,"depth":13134,"text":540},{"id":941,"depth":13134,"text":15642,"children":15643},"#延迟写法",[15644,15646],{"id":962,"depth":15645,"text":963},5,{"id":1017,"depth":15645,"text":1018},{"id":376,"depth":13134,"text":376},{"id":1066,"depth":13134,"text":1067},{"id":1132,"depth":13134,"text":1133},{"id":1205,"depth":13134,"text":1205},{"id":1231,"depth":13134,"text":1232},{"id":1316,"depth":13134,"text":15653},"$display \u002F $finish",{"id":1344,"depth":13134,"text":1344},{"id":1391,"depth":13134,"text":1392},{"id":1477,"depth":13134,"text":1480},{"id":1540,"depth":13134,"text":15658},"阻塞 (=) vs 非阻塞 (\u003C=)",{"id":1642,"depth":13134,"text":1645},{"id":1708,"depth":13134,"text":1708},{"id":1713,"depth":1421,"text":1714,"children":15662},[15663,15664,15670,15676,15684],{"id":1744,"depth":1451,"text":1744},{"id":1787,"depth":1451,"text":1787,"children":15665},[15666,15667,15668,15669],{"id":1790,"depth":13134,"text":1790},{"id":1816,"depth":13134,"text":1816},{"id":1834,"depth":13134,"text":1835},{"id":1894,"depth":13134,"text":1895},{"id":1919,"depth":1451,"text":1919,"children":15671},[15672,15673,15674,15675],{"id":1922,"depth":13134,"text":1922},{"id":1936,"depth":13134,"text":1936},{"id":1988,"depth":13134,"text":1988},{"id":2031,"depth":13134,"text":2031},{"id":2063,"depth":1451,"text":2064,"children":15677},[15678,15679,15680,15681,15682,15683],{"id":2067,"depth":13134,"text":2067},{"id":2137,"depth":13134,"text":2137},{"id":2182,"depth":13134,"text":2182},{"id":2236,"depth":13134,"text":2236},{"id":2254,"depth":13134,"text":2254},{"id":2277,"depth":13134,"text":2280},{"id":2324,"depth":1451,"text":2324,"children":15685},[15686,15687,15688,15689,15690],{"id":2327,"depth":13134,"text":2327},{"id":2354,"depth":13134,"text":2355},{"id":2369,"depth":13134,"text":2369},{"id":2392,"depth":13134,"text":2392},{"id":2423,"depth":13134,"text":2424,"children":15691},[15692,15693,15694,15695],{"id":2427,"depth":15645,"text":2427},{"id":1415,"depth":15645,"text":2462},{"id":2613,"depth":15645,"text":2613},{"id":2793,"depth":15645,"text":2796},{"id":2814,"depth":1421,"text":2814,"children":15697},[15698,15705,15713,15720,15725,15731,15741,15747,15751,15752,15753,15760],{"id":2817,"depth":13134,"text":15699,"children":15700},"VLSI\u002FFPGA设计流程？自顶向下与自底向上在设计中的作用是什么？前端设计方法学是怎样的？",[15701,15702,15703,15704],{"id":2830,"depth":15645,"text":2830},{"id":2868,"depth":15645,"text":2868},{"id":2984,"depth":15645,"text":2984},{"id":3007,"depth":15645,"text":3007},{"id":3126,"depth":13134,"text":3129,"children":15706},[15707,15708,15709,15710,15711,15712],{"id":3132,"depth":15645,"text":3132},{"id":3180,"depth":15645,"text":3180},{"id":3237,"depth":15645,"text":3237},{"id":3304,"depth":15645,"text":3304},{"id":3340,"depth":15645,"text":3340},{"id":3369,"depth":15645,"text":3370},{"id":3450,"depth":13134,"text":15714,"children":15715},"ASM图方法、    系统框图概念与形式，    如何编写控制器\u002F状态机、数据通路的Verilog代码？",[15716,15717,15718,15719],{"id":3463,"depth":15645,"text":3464},{"id":3539,"depth":15645,"text":3539},{"id":3599,"depth":15645,"text":3600},{"id":3684,"depth":15645,"text":3684},{"id":3776,"depth":13134,"text":3779,"children":15721},[15722,15723],{"id":3782,"depth":15645,"text":3785},{"id":3799,"depth":15645,"text":15724},"可综合的关键：",{"id":3821,"depth":13134,"text":3824,"children":15726},[15727,15728,15729,15730],{"id":3830,"depth":15645,"text":3833},{"id":3839,"depth":15645,"text":3842},{"id":3848,"depth":15645,"text":3851},{"id":3857,"depth":15645,"text":3860},{"id":3882,"depth":13134,"text":3885,"children":15732},[15733,15734,15735,15736,15737,15738,15739,15740],{"id":3888,"depth":15645,"text":3888},{"id":3909,"depth":15645,"text":3909},{"id":4462,"depth":15645,"text":4465},{"id":4482,"depth":15645,"text":4482},{"id":4495,"depth":15645,"text":4498},{"id":5403,"depth":15645,"text":5403},{"id":8132,"depth":15645,"text":8132},{"id":8748,"depth":15645,"text":8751},{"id":8810,"depth":13134,"text":8813,"children":15742},[15743,15744,15745,15746],{"id":8816,"depth":15645,"text":8816},{"id":8981,"depth":15645,"text":8982},{"id":10998,"depth":15645,"text":10999},{"id":11012,"depth":15645,"text":11012},{"id":11028,"depth":13134,"text":15748,"children":15749},"浮点编码格式包括非规范值、浮点处理异常、向偶舍入",[15750],{"id":11038,"depth":15645,"text":11039},{"id":11973,"depth":13134,"text":11973},{"id":12111,"depth":13134,"text":12112},{"id":12418,"depth":13134,"text":12421,"children":15754},[15755,15756,15757,15758,15759],{"id":12429,"depth":15645,"text":12429},{"id":12495,"depth":15645,"text":12495},{"id":12556,"depth":15645,"text":12556},{"id":12632,"depth":15645,"text":12633},{"id":12863,"depth":15645,"text":12863},{"id":12999,"depth":13134,"text":12999},{"id":13307,"depth":1421,"text":13307,"children":15762},[15763,15766,15767,15768,15769,15770,15771,15772,15773,15774,15775,15780,15785],{"id":13310,"depth":13134,"text":13311,"children":15764},[15765],{"id":13394,"depth":15645,"text":13394},{"id":13406,"depth":13134,"text":13407},{"id":13450,"depth":13134,"text":13451},{"id":13462,"depth":13134,"text":13463},{"id":13474,"depth":13134,"text":13475},{"id":13486,"depth":13134,"text":13487},{"id":13498,"depth":13134,"text":13499},{"id":13582,"depth":13134,"text":13583},{"id":13765,"depth":13134,"text":13766},{"id":13868,"depth":13134,"text":13869},{"id":13987,"depth":13134,"text":13988,"children":15776},[15777,15778,15779],{"id":13991,"depth":15645,"text":13994},{"id":14161,"depth":15645,"text":14164},{"id":14842,"depth":15645,"text":14843},{"id":15177,"depth":13134,"text":15178,"children":15781},[15782,15783,15784],{"id":15186,"depth":15645,"text":15187},{"id":15200,"depth":15645,"text":15200},{"id":15261,"depth":15645,"text":15262},{"id":15270,"depth":13134,"text":15271,"children":15786},[15787,15788,15789,15790,15791,15792,15793,15794,15795,15796],{"id":15311,"depth":15645,"text":15312},{"id":15315,"depth":15645,"text":15316},{"id":15319,"depth":15645,"text":15320},{"id":15323,"depth":15645,"text":15324},{"id":15327,"depth":15645,"text":15328},{"id":15331,"depth":15645,"text":15331},{"id":15365,"depth":15645,"text":15365},{"id":15539,"depth":15645,"text":15539},{"id":15570,"depth":15645,"text":15570},{"id":15573,"depth":15645,"text":3785},[228],"HDL 期末复习：Verilog 基础、设计基础、加法器\u002F乘法器、浮点、流水线与协处理器，附练习示例","md",null,{"slots":15802},{},{"text":15804,"minutes":15805,"time":15806,"words":15807},"105 min read",104.66,6279600,20932,{"title":186,"description":15798},{"loc":185,"images":15810},[15811,15812,15813,15814,15815,15816,15817,15818,15819,15820,15821,15822,15823,15824,15825,15826,15827,15828,15829,15830,15831,15832,15833,15834,15835,15836,15837,15838,15839,15840,15841,15842,15843,15844,15845,15846,15847,15848,15849,15850,15851,15852,15853,15854,15855,15856,15857,15858,15859,15860,15861,15862,15863,15864,15865,15866,15867,15868,15869,15870,15871,15872,15873],{"loc":329},{"loc":354},{"loc":384},{"loc":579},{"loc":722},{"loc":795},{"loc":803},{"loc":808},{"loc":980},{"loc":988},{"loc":1006},{"loc":1014},{"loc":1032},{"loc":1040},{"loc":1155},{"loc":1178},{"loc":1186},{"loc":1202},{"loc":1308},{"loc":1313},{"loc":1341},{"loc":1358},{"loc":1366},{"loc":1380},{"loc":1388},{"loc":1492},{"loc":2314},{"loc":2321},{"loc":2351},{"loc":2374},{"loc":3014},{"loc":3137},{"loc":3193},{"loc":3200},{"loc":3250},{"loc":3257},{"loc":3309},{"loc":3375},{"loc":3469},{"loc":3536},{"loc":3544},{"loc":4473},{"loc":4492},{"loc":5323},{"loc":5331},{"loc":5336},{"loc":5400},{"loc":5768},{"loc":8154},{"loc":8159},{"loc":8789},{"loc":8797},{"loc":8802},{"loc":8824},{"loc":9819},{"loc":10343},{"loc":10982},{"loc":11004},{"loc":11020},{"loc":12426},{"loc":12561},{"loc":13012},{"loc":13019},[15875,15876,15877],"期末复习","HDL","课程笔记","tech","Wwy1q2QRAD4H8_E04KiIUF4qyJQ4NOXr33m3mOZE9Ac",[15881,15882],{"title":201,"path":200,"stem":199,"date":202,"type":15878,"children":-1},{"title":191,"path":190,"stem":189,"date":192,"type":15878,"children":-1},1789037801881]