在fpga(七段)实施0000-9999计数器的问题

时间:2015-03-21 15:32:58

标签: counter verilog fpga seven-segment-display

EDIT1 好吧,我不能发表一个长评论(我是网站的新人,所以请接受我的道歉)所以我正在编辑我之前的问题。我试图在两次尝试中实现多路复用:

- 2nd attempt

- 3rd attempt

在第二次尝试中,我试图将每个模块的七个seg变量发送到比它仅提前一步的模块,当它们都到达最终的顶层模块时,我已经多路复用它们......还有一个时钟模块为单元模块生成时钟(使单元在一秒内更换2次)和用于多路复用的时钟(每个显示器在每秒500次之间多路复用)...当然我读到我的板有时钟频率50M赫兹,所以这些时钟计算都是基于这个数字......

在第3条评论中,我在一个单独的模块中做了同样的事情。先看第二次尝试,然后看第三次尝试。

在合成之后立即给出错误并且发出许多不熟悉的警告。

编辑2

我已经能够在try4中合成并实现该程序(由于我的声誉很低,我不允许发布该程序),使用变量,变量1变量2和变量3的保存标志(它们发出未使用引脚的警告)但程序并没有在fpga上运行...它只显示数字3777.对于某些与某些变量相关的事情,仍然存在“组合循环”的警告(对不起,我对所有这些verilog事情都是新手)但是你也可以在尝试3中看到所有这些。

1 个答案:

答案 0 :(得分:1)

您无法使用循环实现计数器。你也不能用嵌套循环实现级联计数器。

编写HDL不是在编写软件!请阅读有关VHDL或Verilog的书籍或教程,了解如何设计基本硬件电路。 Xilinx还有Synthesis and Simulation Guide 14.4 - UG626。请看第88页。

<强> EDIT1:

现在可以在没有任何Dropbox凭据的情况下访问您的zip文件,我已经查看了您的项目。以下是我对您的代码的评论。

为了更好的参考,我会给我的子弹编号:

  1. 您的项目有4个大部分相同的ucf文件。不同之处仅在于将不同的阳极控制信号分配给相同的引脚位置。这将导致后合成步骤中的错误(将多个网络分配给一个引脚)。通常,简单项目只有一个ucf文件。
  2. Nexsys 2板有一个4位7段显示器,带有共用阴极和可切换的共用阳极。总共这些是8 + 4线控制。需要时间多路复用电路以25Hz <25Hz切换。 f&lt;通过4位输出向量的每个数字1kHz。
  3. 选择嵌套层次结构并不是那么好。一个主要缺点是将许多信号从每个级别传递到最高级别,以将它们连接到FPGA引脚。我建议在第一级使用顶级模块和4个计数器。顶级模块还可以提供时分复用电路和二进制到7-seg编码。