其他分享
首页 > 其他分享> > 第五章练习题_1

第五章练习题_1

作者:互联网

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