FPGA定时计数的问题(新手上路)

来源:互联网 发布:ubuntu 17 源下载地址 编辑:程序博客网 时间:2024/06/08 06:23

RTL图
简单的计时器

功能模块:
累加器,比较器,寄存器
其中,寄存器由D触发器构成,不用考虑。
累加器:此模块用组合电路实现,通过加法器,将test输入端和1相加,使得test_n始终比test大1。(test值是由test_n值每1个时钟触发进行赋值)
比较器:也是由组合逻辑构成,不需要时钟。

简言:
设定比较值为15时:
Test输出Q计数值0.1.2~,~15.0.1.2~,~15.0.1.2…………..
Test输出Q在15时刻时,test_n的DATAA为16(不过是不会起作用的),out0为0,比较器为匹配相等的值,out寄存器ENA端为1,out输出端Q为0。
Test输出Q回到0时刻时,test_n的DATAA变为1,out0变为1,比较器变为匹配不相等的值,out寄存器ENA端变为0,out输出端Q变为1。(在上升沿来临瞬间,ENA是1,时钟来临,out输出反转)。

这样,out在test从15到0时刻起作用,从计时开始到起作用,需要16个比较值,所以目标值设置需要比实际值小1;

原创粉丝点击