为什么我得到“找到1个未推断的RAM逻辑实例”消息,因为/ * synthesis保留* /在一个不相关的端口?-Altera-Intel社区-FPGA CPLD-ChipDebug

为什么我得到“找到1个未推断的RAM逻辑实例”消息,因为/ * synthesis保留* /在一个不相关的端口?

对于下面代码中的示例,由于/ * synthesis preserve * /,Quartus®Stand会出现RAM推断问题

模块记忆

#(参数DATA_WIDTH = 8,参数ADDR_WIDTH = 6)(

输入[(DATA_WIDTH-1):0]数据,

input [(ADDR_WIDTH-1):0] read_addr,write_addr,

输入我们,clk,

输出[(​​DATA_WIDTH-1):0] q,

输出reg [3:0] state = 0 / *综合保留* /

);

simple_dual_port_ram_single_clock simple_dual_port_ram_single_clock_inst(

.data(数据),

.read_addr(read_addr),

.write_addr(write_addr),

.we(我们),

.clk(clk),

.q(q)

);

解决方法:

该问题是由已知限制引起的,其中模块声明中的任何保留在使用Verilog 95样式时应用于整个模块。要解决此问题,请使用Verilog 2001属性样式。即:

更换:

输出reg [3:0] state = 0 / *综合保留* /

有:

(*保留*)输出reg [3:0] state = 0

Quartus®Pro版本的软件中没有此问题。对于Quartus®Standard版本,请使用变通方法。

请登录后发表评论

    没有回复内容