广告

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

2010-6-5 17:35 1907 0 分类: FPGA/CPLD

4. 4 : 再一次“组织”起来:


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

这一章,我们要讲 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


 


 


下面是仿真的载图:


 


点击看大图

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
akuei_2_550826815 2011-10-22 18:26
Verilog的私私细语 - 时钟化和信号的长度
目录 第2章 时钟化和信号的长度 2.01 一个时钟一块数据的概念 2.02 信号时钟化 2.03 深入了解模块的沟通 2.04 电平检测模块的整合(即时事件在时序上的不和谐)      实验八:电...
akuei_2_550826815 2011-09-08 12:47
瞎搞Time Quest 和无责任的笔记 第二章
最近整合篇的第二章的构思和灵感都累积不少了,应该是时候开工了。恰好手头上还有一本笔记还没有写完,就是这本瞎搞TimeQuest的第二章。目录笔者也懒得贴了,看过第一章的同学多少也会猜到第二章的内容是什...
akuei_2_550826815 2011-08-29 18:21
瞎搞Time Quest 和无责任的笔记 第一章
哎呀 ... 潜水了都有一段时间了,这是最近研究的成果和目标。 话说TimeQuest这个东西真的很搞怪呀,做得笔者不得不从其他的方向去研究它。 好了还是切入正题,TimeQuest用作静态时序的工具...
akuei_2_550826815 2011-07-06 17:43
Verilog的私私细语 - 整合的概念
目录         02  第1章  整合的概念          1.01  源码上的整合                   实验一:字面上的整合          1.02  时钟和步骤的定...
akuei_2_550826815 2011-06-22 10:18
VerilogHDL那些事儿 - 建模篇v4 + 时序篇v1
VerilogHDL那些事儿 - 建模篇v4 ====== v4 ====== 主要是修改了大量用法上的BUG和极限的精简内容 https://docs.google.com/leaf?id=0B...
akuei_2_550826815 2011-06-10 13:19
Verilog HDL的礼物 - Verilog HDL扫盲文
目录 02第0章 Verilog HDL语言扫盲文 030.01 各种的HDL语言 030.02 HDL语言的层次 03 0.03 RTL级和组合逻辑级 040.04 Verilog HDL语言真的那...
我要评论
0
0
广告
关闭 热点推荐上一条 /1 下一条