您的位置 首页 新品

Verilog HDL根底之:时序逻辑电路

在Verilog HDL语言中,时序逻辑电路使用always语句块来实现。

在Verilog HDL语言中,时序逻辑电路运用always句子块来完结。例如,完结一个带有异步复位信号的D触发器如下。

例1:带异步复位的D触发器1。

wire Din;

wire clock,rst;

reg Dout;

always @ (posedge clock or negedge rst) //带有异步复位

if(rst == 1’b0) Dout = 1’b0;

else Dout = Din; //D触发器数据输出

在例1中,每逢时钟clock上升沿到来后,输出信号Dout的值便更新为输入信号Din的值。当复位信号下降沿到来时,Dout的值就会变成0。有必要留意的是,在时序逻辑电路中,一般运用非堵塞赋值,即运用“=”。当always块整个完结之后,值才会更新,例如:

例2:带异步复位的D触发器2。

wire Din;

wire clock,rst;

reg Dout;

always @ (posedge clock or negedge rst) //带有异步复位

if(rst == 1’b0) out = 1’b0;

else begin

Dout = Din; //D触发器输出值还处于确定状况

Dout = 1’b1; //D触发器输出值仍然处于确定状况

End //D触发器的输出为1

在例2中,Dout首要被赋值为Din,此刻Dout的值并没有产生改动;接着Dout又被赋值为1,此刻Dout的值仍然没产生改动;直到这个always模块完结,Dout的值才变成最终被赋的值,此例中Dout的值为1。

时序逻辑电路中,always的时刻操控是沿触发的,能够单个信号也能够多个信号,中心需要用关键字“or”衔接,例如:

always @(posedge clock or posedge reset) begin //由两个沿触发的always块

end

其中有一个时钟信号和一个异步复位信号。

always @(posedge clock1 or posedge clock2 or posedge reset) begin

//由3个沿触发的always块

end

其中有两个时钟信号和一个异步复位信号。

一般来说,同步时序逻辑电路更安稳,所以主张尽量运用一个时钟触发。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/194348.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部