标签:练习题 PRE posedge clk oe 第五章 信号 RESET
1.题目:根据RTL图给出HDL描述
DFF的引脚功能:
PRE与CLR均为异步控制信号;PRE置高,DFF输出为1;CLR置高,DFF输出为0;
分析:信号优先级为 \(CLR>PRE\);当ENA为1时,时钟启动,CLR为0时,模块清零,PRE为1时,模块置1;ENA为时钟控制信号,
module DFFa(SET,D,CLK,EN,RESET,Q);
input D,CLK,EN,RESET,SET;
output Q;
reg q;
wire PRE;
always@(posedge CLK,posedge PRE,posedge RESET)//这里需注意边沿触发和电平触发不能混用
begin
if(RESET)//RESET上沿敏感,因此一旦触发,将为1
q<=0;
else if(PRE)
q<=1;
else if(EN)
q<=D;
end
assign PRE=SET&(~RESET);
assign Q=q;
endmodule
/*一些个人纠结问题的思考与解答:
Q1:EN信号要放在敏感信号表中吗?
A1:不用。EN是时钟控制信号,always语句对时钟敏感,那么进入always语句的前提是时钟已经打开了。
Q2:RESET是电平触发,为什么要用posedge RESET?
A2:always语句不允许有边沿触发和电平触发混合形式,当有时钟应先满足时钟敏感信号触发;另外高电平触发的RESET在到来一个上升沿后一定会在高电平,故if判断RESET是否为1
*/
2.题目:请画出下述Verilog所描述的RTL图:
module reg1v(d,clk,q,oe);
input d,clk,oe;
output reg q;
wire a;
reg qt;
assign a = oe ? 1’bz : q;
always @(posedge clk) begin
qt <= a&d;
q <= qt;
end
endmodule
思路:1.初步判断,电路有两个输入信号(\(d,oe\)),一个时钟信号(\(clk\)),一个输出信号(\(q\)),并由一个三态门和一个always过程语句模块组成.
2.三态门由控制端\(oe\),输入端\(q\) (可以看到,输出信号\(q\)反馈回来成为了输入量),输出端为辅助变量\(a\).
3.后端模块是一个时序电路,敏感信号是时钟上升沿,输入信号是(\(a,d\))的与,再经过一个D触发器后输出.
4.画出电路图
标签:练习题,PRE,posedge,clk,oe,第五章,信号,RESET 来源: https://www.cnblogs.com/helloszy/p/16355260.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。