用的是quartus软件,写了下面代码,需要一个先进先出RAM跟一个双口RAM,先进先出RAM用来找到一串数据流的同步,然后从双口RAM的0地址开始写数据,双口RAM的读地址比写地址延迟100个时钟,编译都可以通过,但需要18219个LOGIC ELEMENTS,3720个MEMORY BITS,即有一部分RAM用了LOGIC ELEMENTS,想让全部RAM用MEMORY BITS要怎么设置,麻烦高手指点下<br /><br /><br />module test(inclk,outclk,indata,outdata);<br /> input inclk;<br /> input[9:0] indata;<br /> output[9:0] outdata;<br /> output outclk;<br /> reg[9:0] mem[999:0];<br /> reg rclk;<br /> reg[9:0] outdata;<br /> reg[9:0] wadd,radd;<br /> reg[3999:0] dtemp;<br /><br /> always@(dtemp)<br /> begin<br /> if({dtemp[29:0],dtemp[2869:2840]}==60'b11_1111_1111_0000_0000_0000_0000_0000_11_1111_1111_0000_0000_0000_0000_0000) <br /> begin<br /> wadd=0;<br /> mem[wadd]=indata;<br /> end<br /> else <br /> begin<br /> wadd=wadd+1;<br /> mem[wadd]=indata;<br /> end<br /> end<br /><br /> always@(posedge inclk)<br /> begin<br /> if({dtemp[1029:1000],dtemp[3869:3840]}==60'b11_1111_1111_0000_0000_0000_0000_0000_11_1111_1111_0000_0000_0000_0000_0000) <br /> begin<br /> radd=0;<br /> outdata=mem[radd];<br /> end<br /> else<br /> begin <br /> radd=radd+1;<br /> outdata=mem[radd];<br /> end <br /> end <br /><br /> always@(posedge inclk)<br /> begin<br /> dtemp<=dtemp<<10;<br /> dtemp[9:0]<=indata;<br /> end <br /><br />endmodule<br /> |
|