原创 FPGA产生D触发器

2015-7-24 17:56 1590 15 16 分类: FPGA/CPLD

FPGA是典型的数字系统,所有的动作都是在时钟节拍下运行的。如果说基本得D触发器,上升沿触发,带有一个同步复位端,那么输出端Q就在时钟上升沿到来时输出此时的输入端D的信号。那么如果说,在上升沿到来时,输入端D的信号刚好也在变化,信号翻转了,那么此时的输出Q会是时钟上升沿来之前的D的信号还是时钟上升沿来之后D的信号呢。

下面是为了验证假设所做的时序仿真。
源码:
module d(clk,rst,din,q);
    input clk;
    input  rst;
    input din;
    output q;
    
    reg q;
    
    always@(posedge clk)
      begin
        if(!rst)
          q<=1'b0;
        else
          q<=din;
      end
      
endmodule
 
 
Testbench:
module d_tb;
    reg clk;
    reg  rst;
    reg din;
    wire q;
    
    initial
      begin
        clk=1'b0;
      forever #20 clk=~clk;
      end
      
    initial
      begin
      rst=1'b1;
      #10 rst=1'b0;
      #20 rst=1'b1;
      end
    
    initial
      begin
        din=1'b0;
      forever #20 din=~din;
      end
      
    d u1(.clk(clk),.rst(rst),.din(din),.q(q));
 
endmodule
 
下图为仿真波形:
仿真图.jpg
 
从仿真波形中可以看出,如果在上升沿到来时,D端数据发生变化,则Q端将输出上升沿后的数据。
 
因为在FPGA中,信号或者说内部数据的变化都是在时钟边沿到来时发生的,所以对于本文中所说问题进行仿真是很有必要的。

文章评论1条评论)

登录后参与讨论

用户1649855 2015-10-30 11:03

给力!

用户377235 2015-10-30 10:54

不错

用户1842468 2015-10-30 10:46

用户377235 2015-10-30 10:45

赞赞赞!

用户1648711 2015-7-26 15:44

相关推荐阅读
用户1757526 2015-08-10 16:57
评论:@荷塘月色 博客中提到的“FPGA验证公司”
FPGA行业...
用户1757526 2015-08-10 16:55
业界容量最大的ASIC原型电路板采用了Altera Stratix III器件
  Altera公司宣布,Dini集团在其业界容量最大的单板FPGA原型引擎中采用了具有340K逻辑单元(LE)的Stratix® III EP3SL340 FPGA。DN7020K10采用了1,76...
用户1757526 2015-07-25 10:47
上拉电阻和下拉电阻的选型和计算
上拉电阻和下拉电阻的选型和计算 常见各类技术资料上,有些技术规范写道“无用的管脚不允许悬空状态,必须接上拉或下拉电阻以提供确定的工作状态”。这个提法基本是对的,但也不全对。下面详细加以说明。   管...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条