Re: [问题] tri

楼主: pokia (幻影成风)   2010-05-04 15:00:03
原文恕删...
我把独立出来的那一段module拿去做TR好像也是同样结果...
code大概长这样:
module regFile(dataout, clk, clear, read, write, datain);
input clk, clear, read, write;
input [2:0] datain;
output[2:0] dataout;
reg [2:0] dataout;
reg [2:0] mem[0:4];
reg [2:0] fptr, rptr;
integer i;
always@(posedge clk) begin
if(clear)
begin
for(i = 0;i < 5;i = i + 1)
mem[i] <= 3'd0;
fptr <= 3'd0;
rptr <= 3'd0;
end
else if(read) begin // output to dataout
if(fptr != rptr) begin
dataout <= mem[fptr];
fptr <= (fptr + 1) % 5;
end
else;
end
else if(write) begin // store into mem
if( (rptr+1) % 5 != fptr) begin
mem[rptr] <= datain;
rptr <= (rptr + 1) % 5;
end
end
else;
end
endmodule
TR建到mem的时候就很花时间了...
所有的顺序我也都试过,好像没什么差别。
是不是要把整个module拿掉?
作者: rockyai (rocky)   2010-05-04 15:39:00
"%5"可能是造成BDD建不出来的原因,或许要换成用AND之类BDD在遇到乘法或除法类的都会建很大
作者: ric2k1 (Ric)   2010-05-04 16:49:00
%5 对硬件来说并不 friendly... 试试看改成 if...else?还有你的电路不会产生 latch 吗? 一堆 else 没有 assignmen
楼主: pokia (幻影成风)   2010-05-04 20:17:00
单纯做加法就有点困难...看来目前只能减少mem的个数。

Links booklink

Contact Us: admin [ a t ] ucptt.com