基于FPGA的D触发器设计-基础篇
每日小知识
1.D触发器是时序逻辑最小单元,它只支持单边沿触发。
2.电路中的竞争与冒险现象:在组合逻辑电路中因信号传输延迟差异而引发的干扰现象就是竞争冒险。当同一信号经不同路径传输,到达某一汇合点的时间有先后的现象,就称之为竞争(Competition);竞争可能导致输出端产生短暂错误输出(如尖峰脉冲),这种现象被称为冒险(Hazard)。竞争不一定导致冒险,但冒险一定源于竞争。竞争分为临界与非临界竞争,前者导致冒险。
3.D触发器代码
module d_ff( input wire clk , input wire rst_n , input wire D , output reg Q ); always @ (posedge clk or negedge rst_n) begin if(!rst_n) Q <= 1'b0; else Q <= D; end endmoduleD触发器仿真代码
`timescale 1ns/1ps module d_ff_tb(); reg clk ; reg rst_n ; reg D ; wire Q ; initial begin clk = 1'b0; rst_n = 1'b0; D = 1'b0; #123 rst_n = 1'b1; end always #10 clk = ~clk; always #323 D = {$random} % 2; d_ff d_ff_inst( .clk (clk ) , .rst_n (rst_n) , .D (D ) , .Q (Q ) ); endmodule