题解 | #ROM的简单实现#

ROM的简单实现

https://www.nowcoder.com/practice/b76fdef7ffa747909b0ea46e0d13738a

ROM的简单实现
ROM初始化时对数据写入一次,之后数据不再发生改变,只能读,又称read only memory.
代码方面主要为对ROM变量的声明。本题让实现一个深度为8,位宽为4的ROM。首先深度8表示这个ROM最多可以存下8个数据。(自我理解深度对应的就是存储的数据多少)位宽为4,表示对数据的存储最多四位。超过四位的则无法表示(自我理解为所能有效存储的最大二进制数的位数)
对ROM声明具体格式如下。 reg 位宽 变量名 深度。   reg [3:0] ROM [7:0];
具体代码如下:
`timescale 1ns/1ns
module rom(
	input clk,
	input rst_n,
	input [7:0]addr,
	
	output [3:0]data
);
reg [3:0] rom_data [7:0];
integer i;
always @(posedge clk or negedge rst_n)

            if (!rst_n)                                  

                    begin

                        rom_data[0] <= 4'd0;

                        rom_data[1] <= 4'd2;

                        rom_data[2] <= 4'd4;

                        rom_data[3] <= 4'd6;         

                        rom_data[4] <= 4'd8;

                        rom_data[5] <= 4'd10;

                        rom_data[6] <= 4'd12;

                        rom_data[7] <= 4'd14;
					end
			else begin
				for(i=0;i<8;i=i+1) 
				rom_data[i] <= rom_data[i];
			end

assign data = rom_data[addr];


endmodule



全部评论

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
nbdy:字太多了,写简历不是写自传,亮点难点技能点列出来就行,要简明扼要
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务