Verilog HDL语言实现时序逻辑电路

verilog hdl语言实现时序逻辑电路
在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
其中有两个时钟信号和一个异步复位信号。
一般而言,同步时序逻辑电路更稳定,所以建议尽量使用一个时钟触发。

推动产业创新发展 菲菱科思打造智造新名片
iphone8将具有无线快充功能 你们期待吗
QCA9531 AP/Router WiFi模块的工作原理和功能
Redmi Note 9系列将成为Redmi旗下新一代爆款
法拉利航空航天公司推出BEHA M1-AT的无人机变体
Verilog HDL语言实现时序逻辑电路
芯闻3分钟:TCL重组方案通过 董事长李东生将“背水一战”
小米可能是率先推出带有显示屏下置摄像头的智能手机之一
同步整流芯片行业未来发展趋势
维萨拉推出适用于工业液体测量的光学原位在线折光仪系列
阿里云与易绘公司合作“管网数字孪生”技术,实时监测液位运行
手持式土壤重金属检测仪介绍
ProCon M多任务框架应用案例分析
1600万!荣之联中标中国电信云业务类集成项目
安徽蚌埠智能传感产业规上企业39家,打造中国传感谷新高地
安科瑞智能照明控制系统在沪昆高铁曲靖北站、富源站、嵩明站的应用
中国显示面板市场份额大涨 京东方和华星光电势头正盛
郭明錤:售价2800元iPhone SE2大规模生产,苹果改善信号
北京将更新数字信息亭功能
MAX19791模拟可变电压衰减器与片上控制的DAC