quartusii LPM+Modelsim+Verilog问题
时间:10-02
整理:3721RD
点击:
用quartusii生成一个双口RAM。描述如下:
module ram_stmap (
clock,
data,
rdaddress,
wraddress,
wren,
q);
input clock;
input [0:0] data;
input [6:0] rdaddress;
input [10:0] wraddress;
input wren;
output [15:0] q;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
tri1 wren;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif
问题1:红字部分是什么意思啊?
问题2:当用Reg类型连接到wren的时候,用Modelsim仿真有这样的错误提示:
# ** Warning: (vsim-3016) F:/ram/ram.v(87): Port type is incompatible with connection (port 'wren_a').
这个怎么解决呢?
问题3:还有仿真的时候可以用initial来初始化RAM,可是芯片工作时候怎么让RAM清0呢?
知道ALTERA 的CPLD有全局清零的引脚,对象是LC中的寄存器。
可是不只是FPGA是否有全局清零的引脚,能对RAM块清0。
(我觉得这个IC应该能够实现的,因为初始化要占用很多个CLK。)
module ram_stmap (
clock,
data,
rdaddress,
wraddress,
wren,
q);
input clock;
input [0:0] data;
input [6:0] rdaddress;
input [10:0] wraddress;
input wren;
output [15:0] q;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
tri1 wren;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif
问题1:红字部分是什么意思啊?
问题2:当用Reg类型连接到wren的时候,用Modelsim仿真有这样的错误提示:
# ** Warning: (vsim-3016) F:/ram/ram.v(87): Port type is incompatible with connection (port 'wren_a').
这个怎么解决呢?
问题3:还有仿真的时候可以用initial来初始化RAM,可是芯片工作时候怎么让RAM清0呢?
知道ALTERA 的CPLD有全局清零的引脚,对象是LC中的寄存器。
可是不只是FPGA是否有全局清零的引脚,能对RAM块清0。
(我觉得这个IC应该能够实现的,因为初始化要占用很多个CLK。)
自我回答:
tri1 wren;
表示wren无驱动连接时候,状态为1。
但是为何出现这样的错误提示呢?
自我回答:改成tri0 wren;
就没有错误提示了,已然不知所以然。
应该是有的,不过好象只是对你的输入输出寄存器进行清零,内部好像不会清零,最好是自己封装一层去做初始化的工作。
