老师给了我一块EP4CE6F17C8的板子,要求我制作一个可以读写的8位RAM。用verilog,具体应该如何做
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏50(财富值+成长值)
1个回答
展开全部
module RAM_16W8D
(
input clk,
input rst_n,
input wr,
input [2:0] waddr,
input [15:0] wdata,
input rd,
input [2:0] raddr,
output reg [15:0] rdata
);
integer i;
reg [15:0] mem[2:0];
always @(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) begin
for(i=0;i<8;i++) begin
mem[i] <= 16'b0;
end
end
else begin
for(i=0;i<8;i++) begin
if(wr & (waddr == i))
mem[waddr] <= wdata;
end
end
end
always @(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) begin
rdata <= 16'b0;
else if(rd)
rdata <= mem[raddr];
end
endmodule
(
input clk,
input rst_n,
input wr,
input [2:0] waddr,
input [15:0] wdata,
input rd,
input [2:0] raddr,
output reg [15:0] rdata
);
integer i;
reg [15:0] mem[2:0];
always @(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) begin
for(i=0;i<8;i++) begin
mem[i] <= 16'b0;
end
end
else begin
for(i=0;i<8;i++) begin
if(wr & (waddr == i))
mem[waddr] <= wdata;
end
end
end
always @(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) begin
rdata <= 16'b0;
else if(rd)
rdata <= mem[raddr];
end
endmodule
更多追问追答
追问
谢谢 还用编译顶层文件么。这个引脚怎么分配给芯片。
追答
肯定要编译综合的,这只是一个16位宽8深度程序的例子。具体怎么分配管脚要看板子以及具体要求情况。
整个怎么编译综合下载太多不好描述,百度找个quartus教程吧,应该有从头到尾的教学的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海德康电子
2023-08-29 广告
2023-08-29 广告
板对板连接器是用于将印刷电路板(PCB)相互连接的电子元件。它们通常具有高精度的插针和插座,可提供稳定且可靠的电气连接。板对板连接器具有多种尺寸和形状,以满足不同应用的需求。这些连接器通常具有高频率信号传输、高电压绝缘、良好的屏蔽性和抗振动...
点击进入详情页
本回答由上海德康电子提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询