我在Verilog HDL中进行综合编写,我想用默认值(零)实例化一个DUAL PORT RAM,怎么做呢?
谢谢,Netanel
答案 0 :(得分:1)
正如您提到的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
声明,使其全部为零。