Menu Close

复杂数字钟设计(4)–分频与显示译码

1.分频器

在数字钟设计中分频器是必不可少的,但由于比较简单,而且有专门章节介绍了分频器的设计方法,这里给出简单介绍,并把源程序列出。分频器的设计章节中提到两种方法:

  • 一种是直接输出方波信号,在其它模块使用该信号时可以直接作为时钟使用,这种方法在利用FPGA器件实现时有一些弊端。在将寄存器的输出在挂在到全局时钟总线上时,会带来时序上不收敛的问题,特别是频率较高时,对于Intel_altera FPGA 可以参照PLL生成章节。
  • 另一种是采用时钟脉冲的方式,即输出与系统时钟同步的单时钟周期的脉冲,在后续使用该信号时,作为使能信号出现的,因此整个设计归为同步时钟设计,时序收敛有保障。在复杂数字钟设计中,分频器采用单时钟脉冲的方式输出的,也就是第二种方案。

分频代码如下:


 

 

2.显示译码

由于现实的内容有秒、分、时、天、月5个内容共10个BCD计数变量需要显示,而数码管只有6个,因此存在选择显示的问题,也就是如何把10BCD选择性的显示在6个数码管上。为简化程序设计,显示译码部分仅提供6个数码管的数据及扫描,把复杂的问题交给调度程序完成,这样的功能划分有利于简化程序设计。代码如下:


 

 

在上面的代码中程序非常单一,10个BCD码和6个数码管对应的小数点都由外部输入,本程序仅简单执行以前介绍过扫描、译码、显示电路。

 

Posted in FPGA, FPGA 教材教案, Quartus II, Verilog, 教材与教案, 文章