原创 Verilog学习笔记9- 综合练习-基于SF-EP1V2的SMG接口设计-SMG加码器

2010-5-19 09:31 2951 6 7 分类: FPGA/CPLD

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


SMG加码器,划一句话说就是“千位取位逻辑”“数码管码加码模块”。以下的示意图说明了一切:


 



点击看大图


项目导航操作:





点击看大图


Verilog 代码:



1.module smg_encoder 


2.(


3. CLK, RST,


4. Data_In,


5. Thousand_Out, Hundred_Out, Ten_Out, One_Out


6.);


7.


8.  input CLK;


9.  input RST;


10. input [25:0]Data_In;


11.


12. output [7:0]Thousand_Out;


13. output [7:0]Hundred_Out;


14. output [7:0]Ten_Out;


15. output [7:0]One_Out;


16.


17. wire [3:0]Thousand;


18. wire [3:0]Hundred;


19. wire [3:0]Ten;


20. wire [3:0]One;


21.


22. number_module U1


23. (


24.    .Data_In( Data_In ),


25.    .Thousand( Thousand ),


26.    .Hundred( Hundred ),


27.    .Ten( Ten ),


28.    .One( One )


29. );


30.


31. smg_code_module U2


32. (


33.    .CLK( CLK ),


34.    .RST( RST ),


35.    .Thousand_In( Thousand ),


36.    .Hundred_In( Hundred ),


37.    .Ten_In( Ten ),


38.    .One_In( One ),


39.    .Thousand_Out( Thousand_Out ),


40.    .Hundred_Out( Hundred_Out ),


41.    .Ten_Out( Ten_Out ),


42.    .One_Out( One_Out )


43. );


44.


45.endmodule



 


1. 以上的代码很简单而已,直接给上一个RTL 示意图更能解释一切。(示意图如下)


 


点击看大图





仿真:


Testbench代码:



1.`timescale 1 ns/ 1 ns


2.module smg_encoder_vlg_tst();


3.


4.  reg CLK;


5.  reg [25:0] Data_In;


6.  reg RST;


7.                                            


8.  wire [7:0]  Hundred_Out;


9.  wire [7:0]  One_Out;


10. wire [7:0]  Ten_Out;


11. wire [7:0]  Thousand_Out;


12.


13. smg_encoder i1 


14. (


15.    .CLK(CLK),


16.    .Data_In(Data_In),


17.    .Hundred_Out(Hundred_Out),


18.    .One_Out(One_Out),


19.    .RST(RST),


20.    .Ten_Out(Ten_Out),


21.    .Thousand_Out(Thousand_Out)


22. );



23. initial                                                


24. begin CLK = 0; forever #10 CLK = ~CLK; end                       



25. initial


26. begin RST = 0; #100; RST = 1; end         



27. initial


28. begin Data_In = 26'd7821; end                    


29.                       


30.endmodule




 


Testbench代码没有什么苦难度,自己看着明白吧~



仿真载图:



点击看大图



 


从载图中可以看到,“Thousand_Out”的输出是 0x07 也就是“数字7”对应的数码管码,0x7f 对应“数字8”,0x5b对应“数字2”,0x06对应“数字1”。



(╯▽╰)╭ 唉~这一章没有“问题和答案”。


 


总结:


我们已经完成两个重要模块的设计了。下一章实验就是“SMG加码器”和“4SMG控制器”的组合,形成SF-EP1V2独一无二的“SMG接口”。到目前为止,是不是觉得所有设计构思都很简单呢?但是,当这些简单的东西“团结”起来,就成为不简单的东西了。


 


源码:


http://h.imagehost.org/download/0868/07-SMG_Encoder

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1373959 2010-5-18 21:33

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