Verilog循环语句综合之后的模型是什么样子的?并行的还是串行的?

实例如:begin: init_mem
reg[7:0]tempi;
for(tempi=0;tempi<memsize;tempi=tempi+1)
memory[tempi] = 0;
end
这是一个给存储器初始化的模块,在该存储器被初始化的过程中,存储器Memory的所有寄存器是同时初始化(会是一个并行的模块N*8位)还是按照循环变量,一个寄存器一个寄存器的初始化(只有一个初始化模块,是8位的,但是需要重复调用N此,才能将存储器完全初始化)?虽然组合逻辑中可能说没有多大区别,但是并行模块将会占用更多的触发器逻辑门,而顺序重复调用省很多资源,但是就是不知道会综合成哪种模型,求高人指点??????????

第1个回答  2013-09-05
串行的,每次循环都是串行的
第2个回答  2013-09-04
如果是时序控制 会综合成memsize个8位寄存器 占用资源比较大 前提是memsize是固定值,否则无法综合!!
建议简单在synplify或者dc里试一下就知道了追问

for循环在块语句里面循环,不管是always@(posedge clk)还是always条件,在执行一次块语句的时候,for就要全部执行完循环,请问这个循环将会生成一个什么样的模型???如果问题的for语句memory[tempi] <= 0;将“=”修改为“<=”,综合之后会有区别吗???求详细分析,多谢啦!

本回答被提问者采纳
第3个回答  2019-04-10
问题解决了吗
相似回答