[Actel FPGA] 请教altera fpga verilog 程序问题

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

补充

本人新学,看了书本来可以直接调用MEGAWIARD生成RAM,但生成了不知道接下来怎么用,我学习的书上也没下文,痛苦啊,高手朋友说下怎么调用生成的模块也可以啊,多谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部