赞
踩
1 组合逻辑最大的缺点就是存在竞争冒险(使电路存在不稳定的状态)
使用按键控制LED灯
只有时钟上升沿检测到有效才是有效的。
寄存器的复位不管时钟上升沿来不来,只要触发就立即生效,但是后面复位信号的上升沿受到时钟的影响。异步复位 同步释放
时序信号,默认的是时钟信号采集前一时刻的值。所以会出现延迟一拍的效果。
前面是同步复位,后面是异步复位。(异步复位,同步释放)
module flip_flop ( input wire sys_clk, input wire sys_rst_n, input wire key_in, output reg led_out ); always@(posedge sys_clk) // 同步复位 //always@(posedge sys_clk or negedge sys_clk_n) // 异步复位 if(sys_rst_n == 1'b0) led_out <= 1'b1; else led_out <= key_in; endmodule
仿真代码:
`timescale 1ns/1ns module tb_flip_flop(); reg sys_clk; reg sys_rst_n; reg key_in; wire led_out; // 上电只执行一次 initial begin sys_clk = 1'b0; sys_rst_n <= 1'b0; key_in <= 1'b0; #20; sys_rst_n <= 1'b1; #210 sys_rst_n <= 1'b0; #40; sys_rst_n <= 1'b1; end always #10 sys_clk = ~sys_clk; always #20 key_in <= {$random} % 2; flip_flop flip_flop_inst ( .sys_clk(sys_clk), .sys_rst_n(sys_rst_n), .key_in(key_in), .led_out(led_out) ); endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。