首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请帮我看看verilog的程序,万分感谢!

你在设计前应该想清楚,你要用的是计数器,计数器是由触发器组成的,触发器是边缘跳变敏感的,不是电平敏感的,电平敏感的是锁存器,所以用always描述一个计数器的行为当然要用posedge和negedge。
Verilog是硬件描述语言,不是硬件设计语言,你只能用它来描述合理电路的行为,不能用它来创造“未知”的电路,想当然的认为用电平敏感量来说明正负边缘虽然在逻辑上没错,但是在电路上是不能实现的。
另外,双边缘触发的计数器好像只有CoolRunner系列的CPLD支持吧。
这个2倍频的思路是对的,是数字倍频电路最常用的方法,但是实现固定时间的延时是非常困难的,一般的实现方法是利用FPGA/CPLD的门级延迟(几个ns)也就是把输入时钟加几个buf,再和原时钟做异或。这样做的缺点有3个:
1。综合工具会认为你加的延时单元是冗余逻辑会自动去掉,所以要加入综合保留标志或者手动加。
2。延时只能是门级延时的整数倍,往往不能保证50%的占空比,而且对于频率较低的情况下要加的延时单元太多。
3。延时受不同温度、不同芯片(既便是同型号也会存在个体差异)、不同工作电压等具体情况的影响较大,一般要反复调试才行。

如果用FPGA的话,不妨用PLL倍频,否则,考虑一下改改设计,别用倍频。
请参考Software Manuals-Libraries Guide-BUF、BUFG(全局)可同时参考IBUF IBUFG。
楼上的同学,您说的方法当然没问题。
可是,倍频的目的就是用比较低的输入频率获得2倍于它的输出频率。
如果要通过计数倍频,那么这个计数器的工作时钟频率肯定要高于生成的倍频频率了。
既然有这么高的时钟,分频不是更合适吗?何必要倍频呢?
返回列表