集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 641|回复: 1

Verilog HDL 建模技巧 低级建模 仿顺序操作·思路篇12 - 再一次组织起来

[复制链接]
羽蒙 发表于 2014-8-15 15:20:07 | 显示全部楼层 |阅读模式
4. 4 : 再


一次“组织”起来:

这一章,我们要讲 effect_module 和 flashing_module 组织起来,然后命名为“done”
代码如下:

1.module done
2.(
3.    CLK, RSTn,
4.    Start_Sig, Done_Sig,
5.    Q,
6.    Right_Done, Left_Done,  //用于观察
7.    Right_Start, Left_Start    //用于观察
8.);
9.   
10.    input CLK;
11.    input RSTn;
12.    input Start_Sig;
13.    output Done_Sig;
14.    output Left_Done;
15.    output Right_Done;
16.    output Right_Start;
17.    output Left_Start;
18.    output [7:0]Q;
19.   
20.    /*******************************/
21.   
22.    wire Right_Start_Sig;
23.    wire Left_Start_Sig;
24.    wire Right_Done_Sig;
25.    wire Left_Done_Sig;
26.   
27.    effect_module U3
28.    (
29.        .CLK( CLK ),
30.        .RSTn( RSTn ),
31.        .Start_Sig( Start_Sig ),  // in from top
32.        .Done_Sig( Done_Sig ),     // out to top
33.        .Right_Start_Sig( Right_Start_Sig ),   // out to U2
34.        .Left_Start_Sig( Left_Start_Sig ),    // out to U2
35.        .Right_Done_Sig( Right_Done_Sig ),    // in from U2
36.        .Left_Done_Sig( Left_Done_Sig )       // in from U2
37.    );
38.   
39.    /*************************************/
40.   
41.    flashing_module U4
42.    (
43.        .CLK( CLK ),
44.        .RSTn( RSTn ),
45.        .Right_Start_Sig( Right_Start_Sig ),     // in from U1
46.        .Left_Start_Sig( Left_Start_Sig ),       // in from U1
47.        .Right_Done_Sig( Right_Done_Sig ),    // out to U1
48.        .Left_Done_Sig( Left_Done_Sig ),      // out to U1
49.        .Q( Q )                            // out to top
50.    );
51.   
52.    /*************************************/
53.   
54.    //用于观察
55.    assign Left_Done = Left_Done_Sig;
56.    assign Right_Done = Right_Done_Sig;
57.    assign Right_Start = Right_Start_Sig;  
58.    assign Left_Start = Left_Start_Sig;
59.   
60.endmodule

这是第二层的组织了,到这里基本上我们已经完成如下图的效果

1. `timescale 1 ns/ 1 ns
2. module done_vlg_tst();
3. reg CLK;
4. reg RSTn;
5. reg Start_Sig;
6.                                             
7. wire Done_Sig;
8. wire [7:0]  Q;
9. wire Left_Done;
10.wire Right_Done;
11.wire Right_Start;
12.wire Left_Start;
13.done i1
14.(
15. .CLK(CLK),
16. .Done_Sig(Done_Sig),
17. .Q(Q),
18. .RSTn(RSTn),
19. .Start_Sig(Start_Sig),
20. .Left_Done( Left_Done ),
21. .Right_Done( Right_Done ),
22. .Right_Start( Right_Start ),
23. .Left_Start( Left_Start )
24.);
25.
26.initial                                                
27.begin  RSTn = 0; #20; RSTn = 1;  end  
28.
29.initial
30.begin  CLK = 1; forever #20 CLK = ~CLK;  end
31.
32.initial
33.begin  Start_Sig = 1;  end
34.                                                  
35.endmodule

Sunlife 发表于 2014-8-15 21:42:23 | 显示全部楼层
CLK = 1; forever #20 CLK = ~CLK;  end
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-26 13:31 , Processed in 0.061224 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表