|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
比如,给以下存储器赋初值:
reg [9:0] ram [156:0];
一般来讲,在design中大家都不会采用以下方法(在testbench中可以):
for(i=1;i<=156;i=i+1)
ram<=0;
但是很多教科书中是这样赋初值的:
if(rst)
begin
ram[0] <=10'b0 ;
ram[1] <=10'b0 ;
.........................
ram[156] <=10'b0 ;
end
实际上这两种方式都是一样的,资源占用的结果如下(xilinx芯片):
Selected Device : 2v2000ff896-4
Number of Slices: 2663 out of 10752 24%
Number of Slice Flip Flops: 3170 out of 21504 14%
Number of 4 input LUTs: 2056 out of 21504 9%
Number of IOs: 51
Number of bonded IOBs: 51 out of 624 8%
Number of GCLKs: 1 out of 16 6%
Timing Summary:
Minimum period: 6.470ns (Maximum Frequency: 154.548MHz)
而去掉初始化的一段程序之后,资源占用的结果如下(xilinx芯片):
Selected Device : 2v2000ff896-4
Number of Slices: 17 out of 10752 0%
Number of Slice Flip Flops: 10 out of 21504 0%
Number of 4 input LUTs: 34 out of 21504 0%
Number of IOs: 51
Number of bonded IOBs: 51 out of 624 8%
Number of BRAMs: 2 out of 56 3%
Number of GCLKs: 1 out of 16 6%
Timing Summary:
Minimum period: 4.864ns (Maximum Frequency: 205.613MHz)
这样赋初值的效果是很差的,不知道大家是怎么赋初值的,不妨说说看!
顺便说一下,似乎在芯片中,不给寄存器赋值时其值默认为0,哪么如果要使其初值为0,不理它行不? |
|