原创 CPLD笔记4 数码管显示

2010-3-6 12:34 2598 8 9 分类: FPGA/CPLD

笔记数码管显示<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



module lesson04


(


CLK, RST,


Code, L0, L1


);


 


input CLK;


input RST;


output L0,L1;


output [6:0]Code;


 


//////////////////////////////////////////


reg [25:0]Counter;


 


always @ (posedge CLK or negedge RST )


if (!RST)


   Counter <= 1'd0;


else 


   Counter <= Counter + 1'b1;


 


//////////////////////////////////////////


reg [3:0]Number;


 


always @ (posedge CLK or negedge RST)


if (!RST)


    Number <= 1'd0;


else if(Counter == 28'h2ffffff)


    Number <= Number + 1'b1;



/////////////////////////////////////////


parameter


_0 = 7'h3f,


_1 = 7'h06,


_2 = 7'h5b,


_3 = 7'h4f,


_4 = 7'h66,


_5 = 7'h6d,


_6 = 7'h7d,


_7 = 7'h07,


_8 = 7'h7f,


_9 = 7'h6f,


_A = 7'h77,


_B = 7'h7c,


_C = 7'h39,


_D = 7'h5e,


_E = 7'h79,


_F = 7'h71;



/////////////////////////////////////////



reg [6:0]Code_Buff;


 


always @ (Number)


case (Number)


    4'h0 : Code_Buff = _0;


    4'h1 : Code_Buff = _1;


    4'h2 : Code_Buff = _2;


    4'h3 : Code_Buff = _3;


    4'h4 : Code_Buff = _4;


    4'h5 : Code_Buff = _5;


    4'h6 : Code_Buff = _6;


    4'h7 : Code_Buff = _7;


    4'h8 : Code_Buff = _8;


    4'h9 : Code_Buff = _9;


    4'hA : Code_Buff = _A;


    4'hB : Code_Buff = _B;


    4'hC : Code_Buff = _C;


    4'hD : Code_Buff = _D;


    4'hE : Code_Buff = _E;


    4'hF : Code_Buff = _F;


    default : ;


endcase


 


assign Code = Code_Buff;


assign L0 = 1'b0;


assign L1 = 1'b0;


 


//////////////////////////////////////////




endmodule





 


数码管估计读过电子的朋友一点也不陌生吧。在这里就不叙述原理了,而是直接的了解代码的意思。


 


代码的开始依然声明了 CLKRST均为输入。而七位CodeL0L1为输出,它们分别是段选和位选。


 


然后建立了26位的计数寄存器,时间的间隔大约是1.3秒左右。每隔这个时间Number计数寄存器都会开始递增。而always模块会因为Number的变化,不断判断Code_Buff寄存器的输出段选码。


 


在最后的几行代码,分别将L0L1位选的电平拉低,而且发送段选码。



在这里出现的新脸孔,有parameter这个关键字,意思是常量,和C语言的const意思相通。(实际上c语言的const关键字,有更多不同的意思)

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户286631 2010-6-5 21:28

就找这个呢,顶一个!
相关推荐阅读
用户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
8
关闭 站长推荐上一条 /3 下一条