简介面向数字逻辑与EDA设计课程的学习者这份实验报告文档以LiberoSoc仿真验证和数字逻辑实验箱操作两条主线展开适合需要完成课程实验、复盘EDA流程或补齐报告内容的高校学生参考。文档共1个docx文件约1.43MB篇幅集中便于直接查阅与整理。内容覆盖实验目的、仪器元器件、实验原理、操作流程与结果分析既包含Verilog门电路、组合与时序逻辑的仿真激励和波形验证思路也记录了74HC00、74HC02、74HC04、74HC08、74HC32、74HC86等芯片的输入输出状态表并延伸至74HC148编码器、74HC4511译码显示和74HC161计数器的测试数据。综合实验部分给出按键编码显示与十进制计数器设计任务附思考题和问题讨论栏可帮助读者对照连线、理解控制引脚用法并完成结果核对。目前已有938人学习。1. 从一张真值表说起这套数字逻辑实验报告要解决什么数字逻辑设计仿真及验证实验的报告最怕的不是代码跑不通而是代码、波形、实验箱实测三张皮对不上。这套资源把基于实验箱的数字逻辑实验和基于 LiberoSoc 的 EDA 仿真实验放在同一份报告里前半段用 74HC00、74HC02、74HC04、74HC08、74HC32、74HC86、74HC148、74HC4511、74HC161 把物理现象测出来后半段用 Verilog 写模块和 testbench在 LiberoSoc 里跑综合与波形。适合正在做数字逻辑与 EDA 课程设计、需要交完整实验报告的人也适合想把“真值表—代码—波形—实物”这条链路走通的自学者。下面按方案结构拆开讲代码和截图怎么对应、数据表怎么填、答辩怎么讲。2. 总体方案实验箱与 LiberoSoc 双轨验证的四个交付物这套实验报告不是把代码贴一遍就完事它要同时回答两个问题芯片在实验箱上到底呈现什么电平以及 Verilog 描述在仿真器里是否和真值表一致。实验箱路线负责物理层验证LiberoSoc 路线负责可综合描述与波形验证。两条线共用同一套真值表和数据记录格式最后在综合实验里合流。先把双轨分工定清楚后面写代码、接线、截图才不会各写各的。2.1 两条实验路线怎么分工实验箱路线的核心是“看得见摸得着”。74HC00 与非门、74HC02 或非门、74HC04 非门、74HC08 与门、74HC32 或门、74HC86 异或门输入接实验箱开关输出接 LED 或逻辑笔逐行填输入输出状态表。组合逻辑部分用 74HC148 做 8-3 编码74HC4511 驱动 LN3461Ax 共阴极七段数码管时序逻辑部分用 74HC161 做十进制计数再把计数值按 1Hz 显示到数码管。实验箱路线的价值在于暴露真实器件的使能端、电平极性、悬空输入和数码管共阴共阳这些问题仿真里很容易被理想模型盖过去。LiberoSoc 路线负责把同一批器件写成 Verilog 模块再配 testbench 跑仿真。基本门电路用 assign 语句描述组合逻辑用 always 块描述优先级编码和七段译码时序逻辑用 always (posedge clk) 描述计数。每个模块都要有对应的测试平台激励按真值表展开波形窗口里看输入输出是否逐拍对上。综合结果看资源占用、警告和端口连接不追求跑多高的频率重点是确认代码可综合、没有推断出意外锁存器。两条路线不是重复劳动。实验箱上 LED 亮灭判断错往往是极性或使能端接错仿真波形全红往往是 testbench 没初始化或端口连接顺序错。把两边现象放在同一张表里对照问题定位会快很多。我一般先写 testbench 的期望向量再写 RTL这样代码写完就能跑不用等到实验室再猜。2.2 工程与报告的四类交付物报告里真正能被验收的东西通常归成四类代码清单、测试平台、仿真波形截图、实验数据表。代码清单包括六个基本门模块、74HC148 编码模块、74HC4511 译码模块、74HC161 十进制计数模块以及 SmartDesign 顶层。测试平台要覆盖真值表的有效组合不能只跑两三个输入就截一张图。波形截图要能看清输入输出名、时间轴和完整周期背景设成白色只是第一步窗口大小和缩放也要调。交付物具体内容验收时看什么RTL 代码门电路、编码器、译码器、计数器模块端口位宽、敏感列表、可综合性testbench激励初始化、时间步、实例化是否覆盖真值表、是否全 x波形截图每个门电路和综合实验的仿真结果输入输出对应关系、时间轴完整数据表表 1 至表 9 的输入输出记录LED 状态与逻辑状态是否一致报告结构按课程模板走实验目的、仪器元器件、实验原理、实验结果与数据处理、问题与讨论。原理部分不要抄教材大段写清楚本实验用到的使能端和电平定义就够。结果部分把表填满表头里的“LED 亮/灭”和“逻辑状态”要分开写别把亮直接当成 1也别把灭直接当成 0先确认实验箱 LED 是高电平点亮还是低电平点亮。问题与讨论写真实踩过的坑比如某个输入悬空导致输出乱跳比写空泛感想有用。2.3 从需求到验收的推进顺序推进顺序按“单元门—组合逻辑—时序逻辑—综合顶层”走。先做 74HC00 到 74HC86 六个门把输入输出表和 Verilog 仿真对齐再做 74HC148 和 74HC4511把按键、编码、译码、数码管这一段打通然后做 74HC161 十进制计数和 1Hz 显示最后用 SmartDesign 把分频、计数、译码、显示连成顶层。这个顺序的好处是每一段都有独立验收物出错时不会把问题堆到顶层。LiberoSoc 里新建工程时目标器件按实验指导书给定的系列选择不要随手选一个不匹配的器件否则综合和引脚分配会对不上。添加源文件后先设顶层再编译综合看警告里有没有位宽不匹配、端口未连接、组合逻辑环路。仿真前把 testbench 设为仿真顶层时间精度和 RTL 保持一致通常写timescale 1ns/1ns。波形窗口把输入输出分组给总线加进制显示截图时把整个激励周期框进去。实验箱端先检查电源和地再插芯片芯片缺口方向别装反。CMOS 输入不能悬空未用输入端接固定电平。LED 和逻辑笔只是观察手段最终记录以真值表为准。综合实验里 74HC148 的使能链、74HC4511 的 LT/BI/LE、74HC161 的 MR/PE/CEP/CET 都要接对这些控制脚一旦接错现象会很像“代码写错了”其实是硬件没使能。提示每做完一个单元模块就把真值表、仿真波形、实验箱 LED 三行记录并排写进报告后面综合实验出问题可以直接回溯到哪一段不一致。3. 基础门电路六个 74HC 器件的 Verilog 实现与激励设计基本门电路实验看起来简单真正容易翻车的是位宽约定和测试平台。原文代码用[4:1]表示四路门74HC04 用[6:1]表示六路非门这种写法能跑但和常见的[3:0]不一致实例化时按位置连接容易看错。下面以 74HC00 为例给出一套可抄的 RTL 和 testbench其他门电路按同样结构替换表达式即可。代码里的注释写清楚哪一位对应哪一路后面截图和填表时不容易乱。3.1 六个门电路的 RTL 写法与位宽约定74HC00 是与非门四路独立输出等于输入与非。74HC02 或非、74HC04 非门、74HC08 与门、74HC32 或门、74HC86 异或门表达式分别是~(a|b)、~a、ab、a|b、a^b。位宽建议统一成[3:0]如果按原文用[4:1]在 testbench 里赋值时要知道最高位是 4、最低位是 1左移操作仍然按位进行。下面保留原文风格同时把模块名写成合法标识符。// 74HC00 与非门四路并行 module HC00( input [4:1] a, input [4:1] b, output [4:1] y ); assign y ~(a b); // 按位与非每一位独立 endmodule // 74HC86 异或门四路并行 module HC86( input [4:1] A, input [4:1] B, output [4:1] Y ); assign Y A ^ B; // 按位异或 endmodule上面两个模块的端口都是四位assign默认按位运算不需要写循环。74HC04 是非门只有一路输入位宽用[6:1]表示六路输出Y ~A。其他门电路照这个模板改表达式即可。模块名不要写成74HC86Verilog 标识符不能以数字开头原文 testbench 里出现74HC86 u1(a,b,y);这种写法编译会直接报语法错误改成HC86 u1(a,b,y);才能过。器件逻辑表达式路数实验箱观察点74HC00y ~(a b)4输入全 1 时输出为 074HC02y ~(ab)474HC04y ~a6输入翻转输出跟着翻转74HC08y a b4任一输入 0 输出 074HC32y ab474HC86y a ^ b4输入相同输出 0不同输出 1表格里的“路数”是芯片内部独立门数量不是位宽。写代码时四路门用四位向量六路非门用六位向量仿真时一次跑完所有路比一路一路手动改输入效率高。数据表里每一行对应一个输入组合LED 亮灭和逻辑状态要分开记录逻辑状态按正逻辑写亮灭按实验箱实际接法写。3.2 testbench 激励把真值表变成时间序列testbench 的任务不是随便给几个输入而是把真值表按时间展开。以 74HC00 为例先把 a 置 0000b 从 0001 开始左移三次覆盖 0001、0010、0100、1000再把 a 置 1111b 重复同样的左移。这样四路门的输入组合都能被观察到。时间步用 15ns 或 10ns 都行关键是波形窗口能分清每个变化点。下面这段 testbench 可以直接跑实例化时按位置连接端口顺序和模块声明保持一致。timescale 1ns/1ns module testbench(); reg [4:1] a, b; wire [4:1] y; // 实例化被测模块端口按位置对应 a,b,y HC00 u1(a, b, y); initial begin a 4b0000; b 4b0001; #15 b b 1; // b 0010 #15 b b 1; // b 0100 #15 b b 1; // b 1000 a 4b1111; b 4b0001; #15 b b 1; #15 b b 1; #15 b b 1; #15 $stop; // 结束仿真便于截图 end endmodule这段激励覆盖了 a 全 0 和全 1 两种情况下 b 的四组取值波形里能同时看到四路输出。#15是等待 15nsb 1是左移一位最低位补 0。$stop让仿真停在最后一个时间点截图时不会继续跑。实际报告里每个门电路都要有对应 testbench74HC02 把等待时间改成 10ns 也能跑74HC04 因为只有输入 a激励改成从000001左移到100000再补一个全 0 状态。仿真跑起来后先看波形有没有全 x。全 x 常见原因是寄存器没初始化、模块实例化端口接反、或者 testbench 没设仿真顶层。波形里输入变化点要对得上时间步输出如果一直是红线先检查assign表达式和端口方向。截图前把波形窗口背景设成白色输入输出信号名展开时间轴缩放到覆盖完整激励周期别只截一小段。3.3 实验箱端判定LED、逻辑笔与数据表实验箱上做门电路实验先确认芯片电源脚和地脚接对74HC 系列通常 5V 供电芯片缺口朝左或朝上按实验箱丝印来。输入接拨码开关输出接 LED 或逻辑笔。LED 亮不一定代表逻辑 1有的实验箱 LED 是低电平点亮有的高电平点亮先拿一个已知电平测一下。逻辑笔可以测高低电平但阈值和响应速度有限记录时以真值表推导和 LED 状态对照为准。表 1 到表 6 的填写不要只写 LED 亮灭。比如 74HC00 输入 00 时输出应为 1如果 LED 接成低电平点亮灯灭对应逻辑 1输入 11 时输出 0灯亮对应逻辑 0。表头里“LED 亮/灭”和“逻辑状态”两列都要填答辩时老师一眼就能看出你有没有理解极性。输入悬空会让 CMOS 门输出乱跳未用输入端接固定高电平或低电平别让它们悬着。注意实验箱上换芯片前先断电插反电源脚会直接把芯片打坏测量时逻辑笔和 LED 只作辅助最终数据以真值表和仿真波形互相对照为准。4. 组合与时序主链路从 74HC148 译码显示到 74HC161 十进制计数组合逻辑和时序逻辑是这份报告的主干。组合部分要把 8 个按键经 74HC148 编码、74HC4511 译码、LN3461Ax 显示这条链路打通时序部分要用 74HC161 做十进制计数并把计数值按 1Hz 显示到数码管。两段都涉及使能端和电平极性代码写对只是第一步实验箱接线和仿真激励要同步对上。下面按编码、译码、计数、顶层四段拆开。4.1 74HC148 优先级编码与使能链74HC148 是 8-3 优先级编码器输入 I0 到 I7 低有效输出 A2A1A0 低有效EI 是输入使能低有效GS 低有效表示有输入EO 低有效表示无输入且 EI 有效。优先级 I7 最高、I0 最低。按下按键“7”时输出 000按下“0”时输出 111无按键时 GS 为 1、EO 为 0。综合实验要求按 0 到 7 显示译码器后面要接共阴极七段数码管所以编码输出还要转成 BCD 或直接查七段表。下面是一个行为级模型casex按优先级从高到低排列x表示不关心。EI为 1 时芯片不工作输出全 1GS 和 EO 都为 1EI为 0 且无输入时A 输出 111GS 为 1EO 为 0。这个模型可以直接放进 testbench 跑波形也可以作为 SmartDesign 里的编码模块。module HC148( input [7:0] I, // I7~I0低有效 input EI, // 输入使能低有效 output reg [2:0] A, // 编码输出低有效 output reg GS, // 有输入指示低有效 output reg EO // 无输入指示低有效 ); always * begin if (EI) begin A 3b111; GS 1b1; EO 1b1; end else begin GS 1b0; EO 1b1; casex (I) 8b0xxxxxxx: A 3b000; // I7 有效优先级最高 8b10xxxxxx: A 3b001; // I6 8b110xxxxx: A 3b010; // I5 8b1110xxxx: A 3b011; // I4 8b11110xxx: A 3b100; // I3 8b111110xx: A 3b101; // I2 8b1111110x: A 3b110; // I1 8b11111110: A 3b111; // I0 default: begin A 3b111; GS 1b1; EO 1b0; // 无按键 end endcase end end endmodule这段代码的关键在casex的顺序先判 I7 再判 I0才能体现优先级。实际接线时 8 个按键一端接地、一端接 I0 到 I7按下为低电平不按为高电平。如果按键没按下时输入悬空编码器会误判所以每个输入要加上拉电阻或接实验箱的上拉开关。GS 可以用来判断有没有按键无按键时让数码管消隐避免显示一个无意义的 0。4.2 74HC4511 七段译码与共阴极显示74HC4511 是 BCD 到七段锁存/译码/驱动器输入 D C B A输出 a 到 g。LT 是灯测试低有效BI 是灭灯低有效LE 是锁存使能高有效。正常译码时 LT 接高、BI 接高、LE 接低或按需要锁存。LN3461Ax 是共阴极数码管段输出高电平点亮。下面给一个简化的七段译码模型只处理 0 到 9LT 和 BI 在顶层单独处理。module seg_decode( input [3:0] din, // BCD 输入D C B A output reg [6:0] seg // abcdefg高电平点亮 ); always * begin case (din) 4d0: seg 7b1111110; 4d1: seg 7b0110000; 4d2: seg 7b1101101; 4d3: seg 7b1111001; 4d4: seg 7b0110011; 4d5: seg 7b1011011; 4d6: seg 7b1011111; 4d7: seg 7b1110000; 4d8: seg 7b1111111; 4d9: seg 7b1111011; default: seg 7b0000000; // 非 BCD 输入灭灯 endcase end endmoduleseg的位顺序要和实验箱数码管引脚一一对应常见顺序是 a 在最高位或最低位接线前看实验箱丝印。共阴极数码管的公共端接地段脚经限流电阻接 74HC4511 输出。如果数码管显示乱码先检查 A B C D 四位有没有接反再检查 LT、BI、LE 的电平。LT 拉低会全亮显示 8BI 拉低会全灭LE 拉高会锁存当前值这三个脚接错的现象很像译码表写错。输入 DCBA显示abcdefg000001111110000110110000001021101101001131111001010040110011010151011011011061011111011171110000100081111111100191111011思考题里问“同时显示 4 个数字怎么处理”思路是动态扫描或静态驱动。动态扫描需要位选信号轮流点亮四位利用人眼视觉暂留静态驱动每位一个译码器。实验箱上只有一片 74HC4511 时通常先做一位显示多位显示要加位选和扫描时钟。报告里把这一点写清楚比只填译码表更能体现设计理解。4.3 74HC161 十进制计数与 1Hz 显示74HC161 是四位二进制同步计数器MR 异步清零低有效CP 上升沿计数CEP、CET 是计数使能PE 同步置数低有效TC 是进位输出。做十进制计数器可以用清零法计到 10 时让 MR 拉低清零也可以用置数法计到 9 时让 PE 拉低下一个时钟置入 0。清零法是异步的10 这个状态会短暂出现数码管可能闪一下置数法是同步的状态更干净。报告里两种方法都可以写时序图要画清楚。下面给一个模 10 计数器模型采用同步回 0 的写法计到 9 后下一个时钟回 0同时输出进位。这个模型适合仿真和综合接到 74HC161 时可以把“回 0”换成 PE 置数或 MR 清零。1Hz 显示需要分频器把板载时钟分到 1Hz再驱动计数器。分频参数按实际板载时钟改下面用 50MHz 举例。module cnt10( input clk, input rst_n, output reg [3:0] q, output tc ); always (posedge clk or negedge rst_n) begin if (!rst_n) q 4d0; else if (q 4d9) q 4d0; // 同步回 0避免 10 状态毛刺 else q q 1b1; end assign tc (q 4d9); // 进位输出 endmodule module clk_div( input clk, input rst_n, output reg clk_1hz ); parameter CNT_MAX 50_000_000; // 按板载时钟修改50MHz-1Hz reg [25:0] cnt; always (posedge clk or negedge rst_n) begin if (!rst_n) begin cnt 0; clk_1hz 1b0; end else if (cnt CNT_MAX/2 - 1) begin cnt 0; clk_1hz ~clk_1hz; // 翻转得到 1Hz 方波 end else begin cnt cnt 1b1; end end endmodulecnt10的输出 q 是四位二进制接七段译码后显示 0 到 9。tc在 q 等于 9 时为高可以用来级联高位计数器。clk_div的CNT_MAX是分频系数50MHz 时钟分到 1Hz 要计 5000 万个周期实际写的时候按板载时钟改不要直接照搬。分频器输出是方波占空比 50%计数器在上升沿加 1数码管每秒变化一次。实验箱上接 74HC161 时MR 接高电平不清零PE 接高电平不置数CEP、CET 接高电平使能计数CP 接 1Hz 时钟Q3 到 Q0 接译码器输入。如果用清零法把 Q3 和 Q1 相与后接 MR计到 10 时清零如果用置数法把 Q3 和 Q0 相与后接 PE计到 9 时置入 0000。时序图要画出 CP、Q3Q2Q1Q0、TC 的变化标出 9 到 0 的跳变点。4.4 SmartDesign 顶层与综合检查综合实验要求用 SmartDesign 把分频、计数、译码、显示连起来。顶层端口通常包括时钟、复位、数码管段选、位选如果做按键显示再加按键输入。SmartDesign 里把clk_div、cnt10、seg_decode拖进来连线注意位宽匹配计数器输出四位接译码输入四位分频输出一位接计数器时钟。顶层不要手动再写一遍逻辑直接用工具连线减少端口名写错。顶层端口方向说明clk输入板载时钟rst_n输入低有效复位seg[6:0]输出七段段选dig[3:0]输出数码管位选单位显示可只接一位key[7:0]输入综合实验按键输入按需综合后看警告位宽不匹配、组合逻辑环路、未连接端口、推断锁存器。组合逻辑里always *如果分支没写全会推断锁存器仿真可能看不出来综合会报 warning。时序逻辑里复位和时钟要分清同步异步别把异步复位写成同步敏感列表。综合结果里的资源占用不用和别人比确认端口和逻辑对得上即可。提示SmartDesign 连线前先把每个子模块的端口名和位宽写在纸上连完再对照一遍比在工具里反复改线快。5. 避坑与排查五个最容易在验收时翻车的点这部分是血泪经验集中区。数字逻辑实验的现象很会骗人代码编译不过、LED 亮灭反了、数码管乱码、计数器闪 A-F、波形全红看上去是五个问题实际可能都出在电平极性、使能端和 testbench 初始化上。下面五条按“现象—原因—解决”写每条都能在实验箱或 LiberoSoc 里复现。验收前逐条走一遍能省掉很多返工。5.1 模块名以数字开头编译直接报错现象testbench 里写74HC86 u1(a,b,y);编译报语法错误提示 near 74 或标识符非法。原因Verilog 标识符不能以数字开头模块名、实例名、文件名都一样。原文代码里 HC86 模块声明是module HC86但 testbench 实例化写成74HC86 u1两者不一致编译自然过不去。类似问题还会出现在文件名写成74HC00.v有些工具能识别有些工具会报错。解决模块名统一用HC00、HC02、HC04、HC08、HC32、HC86实例化写HC86 u1(a,b,y);。文件名也用HC86.v不要以数字开头。报告里如果要标器件型号写在注释或文档标题里不要写进标识符。改完后再编译看警告里还有没有端口位宽不匹配。// 错误写法模块名以数字开头实例化也以数字开头 // module 74HC86(...); // 非法 // 74HC86 u1(a,b,y); // 非法 // 正确写法标识符用字母开头 module HC86(input [4:1] A, B, output [4:1] Y); assign Y A ^ B; endmodule module tb_HC86(); reg [4:1] a, b; wire [4:1] y; HC86 u1(a, b, y); // 实例名和模块名一致 initial begin a 4b0000; b 4b0001; #10 b b 1; #10 b b 1; #10 $stop; end endmodule这条坑最冤代码逻辑全对就卡在名字上。写代码时养成习惯模块名、文件名、实例名都用字母开头型号只出现在注释和报告表格里。LiberoSoc 新建源文件时也别用数字开头工具对文件名的容忍度不一样换一台机器可能就报错。5.2 实验箱 LED 亮灭与真值表相反现象74HC00 输入 00按与非门输出应为 1但 LED 亮着你记成 0输入 11输出应为 0LED 灭你记成 1。整张表填完发现和仿真波形完全反了。原因实验箱 LED 可能是低电平点亮也可能是高电平点亮逻辑笔的高低电平定义和正逻辑不一定一致输入悬空时 CMOS 门输出乱跳LED 状态不稳定。解决先拿一个已知电平测 LED 极性。把 LED 输入端接高电平看亮还是灭再接低电平看相反状态。记录时“LED 亮/灭”和“逻辑状态”分两列逻辑状态按正逻辑写亮灭按实际接法写。输入不要悬空未用输入端接固定电平。逻辑笔只作辅助最终以真值表和仿真波形对照为准。这条坑在表 1 到表 6 里最容易出现。有的同学整张表 LED 列和逻辑状态列完全一样答辩时老师问一句“你的 LED 是高电平点亮吗”就答不上来。正确做法是先测极性再填表表头写清楚实验箱型号和 LED 接法。仿真波形里的 1/0 是逻辑值实验箱 LED 是物理现象两者不能直接画等号。5.3 74HC4511 数码管不亮或显示乱码现象74HC4511 输入 0000数码管不显示 0或者显示 8或者某几段常亮。按键切换时显示跳变无规律。原因LT、BI、LE 三个控制脚接错共阴极/共阳极数码管不匹配A B C D 四位接反段选线顺序和代码里的 abcdefg 不一致限流电阻没接或阻值不对。解决先查 LT、BI、LE。正常译码时 LT 接高、BI 接高、LE 接低或按锁存需要接高脉冲。LT 拉低会全亮显示 8BI 拉低会全灭LE 接错会锁存旧值。再确认 LN3461Ax 是共阴极公共端接地段输出高电平点亮。然后核对 A B C D 和 seg 的位顺序用万用表或实验箱丝印确认 a 到 g 对应哪根线。最后检查限流电阻别把数码管直接跨在电源上。这条坑和 74HC148 的使能链经常一起出现。综合实验里按键按下数码管不显示先看 74HC148 的 GS 有没有变低再看 74HC4511 的 BI 是不是被拉低。无按键时 GS 为 1可以用它控制 BI 灭灯避免显示一个无意义的 0。多按键同时按下时74HC148 按优先级输出最高位编码报告里要模拟这个映射不能只测单按键。5.4 74HC161 十进制计数器出现 10 到 15 或毛刺现象数码管计数到 9 后闪过 A、B、C 等字符或者复位后初值不确定或者计数偶尔跳变。原因用异步清零法时计到 10 产生清零信号10 这个状态会短暂出现在输出上MR、PE、CEP、CET 接错或悬空时钟抖动置数法和清零法混用。解决优先用同步置数法计到 9 时让 PE 有效下一个时钟置入 0000输出不会出现 10。如果必须用清零法把清零信号做窄或在报告里说明 10 状态是瞬态。MR 接高电平不清零PE 接高电平不置数CEP、CET 接高电平使能计数。检查 74HC161 功能表MR 低有效异步清零PE 低有效同步置数CP 上升沿有效。时序图画出 CP、Q3Q0、TC标出 9 到 0 的跳变。这条坑在 1Hz 显示时特别明显因为人眼能看清每秒的变化。仿真里如果 testbench 时钟太快毛刺可能被忽略实验箱上 1Hz 慢慢走闪一下就能看见。报告里把清零法和置数法的时序图都画出来对比两者的区别答辩时能讲清楚为什么选同步置数。5.5 仿真波形全 x 或截图不合格现象波形窗口里输入输出全是红线或 x跑完仿真什么也看不到或者截图背景黑色、时间轴只截了一半、信号名本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?