|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这个实双端口ram是quartus提供的RTL模板:
module true_dual_port_ram #(
parameter DATA_WIDTH=8 , //RAM数据位宽
parameter ADDR_WIDTH=6 //RAM地址位宽
)(
input wire [(DATA_WIDTH-1):0] data_a , //A端口写数据
input wire [(DATA_WIDTH-1):0] data_b , //B端口写数据
input wire [(ADDR_WIDTH-1):0] addr_a , //A端口读写地址
input wire [(ADDR_WIDTH-1):0] addr_b , //B端口读写地址
input wire we_a , //A端口写使能
input wire we_b , //B端口写使能
input wire clk , //时钟信号
output reg [(DATA_WIDTH-1):0] q_a , //A端口读数据
output reg [(DATA_WIDTH-1):0] q_b //B端口读数据
);
// Declare the RAM variable
reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0];
// Initial data to zero
initial
begin : INIT
integer i;
for(i = 0; i < 2**ADDR_WIDTH; i = i + 1)
ram[i] = {DATA_WIDTH{1'b0}};
end
// Port A
always @ (posedge clk)
begin
if (we_a)
begin
ram[addr_a] <= data_a;
q_a <= data_a;
end
else
begin
q_a <= ram[addr_a];
end
end
// Port B
always @ (posedge clk)
begin
if (we_b)
begin
ram[addr_b] <= data_b;
q_b <= data_b;
end
else
begin
q_b <= ram[addr_b];
end
end
endmodule
综合报错说出现多个驱动源:请问这种问题应该怎么解决呀?
|
-
综合报错截图
|