32位计数器155M
时间:10-02
整理:3721RD
点击:
设计一个32位计数器,用在FPGA上,频率要在155M以上。
怎么设计?大家讨论一下a
怎么设计?大家讨论一下a
先上原理图和时序图,稍候跟上解释说明。
原理图
时序图
相信很多人一看就明白了。晚上加上说明部分,现在得工作了,现在。
------------------------------------------------------------------------------------------
计数器从本质上来说都是由加法器和寄存器构成。加法器部分是一块组合逻辑,该块组合逻辑的延迟决定了系统能达到的速度。
加法器组合逻辑的延迟取决于加法器的最低位到最高位的进位延迟。为了得到速度的提升,必须想办法拆分这一块组合逻辑。一种能构极大地提升速度,同时又不过多地增加面积的方法如上图所示:把32位地计数器分成一个小计数器和一个大计数器,小计数器2位,大计数器30位,他们由同一时钟驱动,但是大计数器的使能端受小计数器的进位驱动。小计数器每4个clk进位一次,使en持续有效一个clk时间,此时有效时钟到来大计数器加1。小计数器的寄存器每个clk翻转一次,小计数器前的2位加法器的组合逻辑延迟需要小于一个clk时间减去寄存器的setup时间和加法器到寄存器之间的net延迟所得到的时间。即小计数器的寄存器之间的最大延迟为一个clk。而大计数器内部的寄存器每4个clk才会翻转一次,所以低位寄存器输出的数据在4个clk内到达高位寄存器的输入端即可,即大计数器的寄存器之间的最大延迟为4个clk,因此降低了计数器的时序要求。需要注意的使,在写综合约束和sta约束的时候,需要将图中所示部分设成multicycle=4clk。
描述的不错,明白了,谢谢了