2009-11-10 305 views

回答

4

说真的,您应该为自己准备一本Verilog手册或搜索一些在线资源。

无论如何,这样的事情应该工作:

module dff (
    input Clk, 
    input D, 
    output Q, 
    output Qbar 
); 

    wire q_to_s; 
    wire qbar_to_r; 
    wire clk_bar; 

    assign clk_bar = ~Clk; 

    D_latch dlatch (
    .D(D), 
    .Clk(Clk), 
    .Q(q_to_s), 
    .Qbar(qbar_to_r) 
); 

    RS_latch rslatch (
    .S(q_to_s), 
    .R(qbar_to_r), 
    .Clk(clk_bar), 
    .Qa(Q), 
    .Qb(Qbar) 
); 

endmodule 
0

您将需要创建一个外部模块,使用原理图中所示的端口(D,Clk,Q,NQ)。在此模块内部,您将实例化两个子模块DLatch和RSLatch,并适当地连接端口。 (您需要为内部互连声明额外的电线。)

+0

它的接线端口给我的麻烦。我是否需要分配Qa = RSLatch(params)。但RSLatch返回2个输出,。我只是在命令式编程和HDL之间感到困惑。 – 2009-11-10 05:19:25

+0

RSLatch不是一个函数,所以你不必以命令的方式调用它。无论如何,丹尼波说。 – ScottJ 2009-11-11 00:20:08