我用Verilog HDL写合成,我想用默认值(0)实例化一个双端口RAM,该怎么做?
谢谢,Netanel
发布于 2013-12-03 19:07:24
正如你提到的Virtex-7 -在Xilinx Synthesis manual中查找如何编写推断内存块的Verilog的示例。
在附录C中,您可以找到以下代码:
// Dual-Port Block RAM with Two Write Ports
// File: HDL_Coding_Techniques/rams/rams_16.v
module v_rams_16 (clka,clkb,ena,enb,wea,web,addra,addrb,dia,dib,doa,dob);
input clka,clkb,ena,enb,wea,web;
input [9:0] addra,addrb;
input [15:0] dia,dib;
output [15:0] doa,dob;
reg [15:0] ram [1023:0];
reg [15:0] doa,dob;
always @(posedge clka) begin if (ena)
begin
if (wea)
ram[addra] <= dia;
doa <= ram[addra];
end
end
always @(posedge clkb) begin if (enb)
begin
if (web)
ram[addrb] <= dib;
dob <= ram[addrb];
end
end
endmodule我不是Verilogger,但我确信您可以调整ram声明,使其以全零初始化。
https://stackoverflow.com/questions/20345539
复制相似问题