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