标题:
求助:CPLD宏单元的占用?
[打印本页]
作者:
天末同云
时间:
2005-5-26 16:54
标题:
求助:CPLD宏单元的占用?
我用XC9572想实现一个64位移位寄存器的功能,用verilog编写的程序,综合仿真的时候在FIT这个步骤居然说实现这个需要92个宏单元,想请高手指点一下:寄存器变量是不是每位都需要占用一个宏单元?为什么会出现这种情况呀,怎么解决呀 module shixu(data,clk); output [64:1] data; input clk; reg fr=0; reg [20:1] j=0; reg [64:1] data=-1; reg [7:1] counter=0; always@(posedge clk) begin if(j==1000000) begin j<=0;fr<=~fr; end else j<=j+1; end \\2M的晶振分频到1HZ always@(posedge fr) if(counter==1) begin data[counter]<=0; counter=counter+1; data[64]<=1; end else if(counter==64) begin data[counter]<=0; data[counter-1]<=1; counter=1; end else begin data[counter]<=0; data[counter-1]<=1; counter=counter+1; end\\实现移位寄存器功能 endmodule
作者:
boyfly
时间:
2005-6-14 10:43
当然不是, 你也知道逻辑单元包括同步单元部分如触发器,组合单元部分和布线资源部分,如果你用完了某个逻辑单元块的布线资源,那么这个单元的同步资源部分也就不能用了
作者:
saiyiwu
时间:
2005-6-15 14:28
对,因为每个宏单元只有一个触发器,故每个寄存器在fit的时候都要映射到一个宏单元中,看你用了20个寄存器来分频,用了8个来计数,用了64个来做移位寄存,所用肯定会用到92个,不过你组合逻辑比较简单,如果复杂的话,还会超过这个数。
解决方法: 可以采用更低频率的输入时钟,节省分频寄存器资源。另外用于控制移位的计数器也可以省略,采用case或者移位运算+条件判断来做。
[此贴子已经被作者于2005-6-15 14:28:02编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0