华南理工大学电子与信息学院2022年数字系统设计VHDL卷回忆版详解
一、10分
1.(5分)
……
Process(clk)
If not (clk’event and clk=’0’) then
y<=A;
Else
y<=B;
end if
end process;
2.(5分)
……
Process(din,a,b)
With din select
Y<=a when ‘0’,
<=b when ’1’
Unaffected when others;
End process;
……
答案:
1.(1)边沿触发不能做操作数。(2)时钟边沿触发不可以接else。
2.process中不应用with select。
二、(10分)
1.请分别解释“tsu”“thold”“tlogic”“tc-q”的意义。
2.如图,请计算下图电路的最大工作频率
1.请查书
2.fmax=1Tsu+Tbuf+Tcq=100MHZ (这里的Tbuf是反馈上的Tbuf而不是clock的Tbuf)
三、10分
如图1为X信号,则请画出以下语句对应的波形。
答案:略
四、看代码,填波形图中的空(10分)
1.
2.
答案:
1.
五、
请按如下要求编写VHDL代码:
1:受reset控制的异步复位
2:LOD控制D[7…0]的并行导入数据
3:SHIFTR控制串入右移寄存器,SHIFTL控制串入左移寄存器。
4:Q[7…0]并行输出
答案:略
六:
书本例8-27代码(p212)
(1)请画出该代码的RTL图
(2)请你分析该代码和RTL图的问题,给出优化方案。
(3)请你写出优化过的代码,并给出新的RTL图。
答案:见书P212-P214
七、请你用有限状态机完成该题目:
检测二进制序列,如果检测到连续‘1’的个数大于3,则输出‘1’,否则输出0。
(1)请画出ASM图或者状态转换图
(2)请按照第一问所画的图,写出对应的VHDL代码
(3)请你判断该状态机是moore还是melay状态机
(4)请你完成该程序的testbench
答案:略