Verilog快速入门(17)—— ROM的简单实现

该文介绍了Verilog语言的基础应用,通过实现一个8深度、4位宽度的ROM,展示了如何在硬件描述语言中定义和初始化存储器。ROM的数据初始化为一系列递增偶数,并提供了输入输出信号的描述及对应的代码实现。此外,文中还涉及了其他基本的数字逻辑设计,如触发器、编码器、译码器和数据选择器等。
摘要由CSDN通过智能技术生成

Verilog快速入门

(1) 四选一多路器
(2)异步复位的串联T触发器
(3)奇偶校验
(4)移位运算与乘法
(5)位拆分与运算
(6)使用子模块实现三输入数的大小比较
(7)4位数值比较器电路
(8)4bit超前进位加法器电路
(9)优先编码器电路①
(10)用优先编码器①实现键盘编码电路
(11)8线-3线优先编码器
(12)使用8线-3线优先编码器实现16线-4线优先编码器
(13)用3-8译码器实现全减器
(14)使用3-8译码器①实现逻辑函数
(15)数据选择器实现逻辑函数
(16)状态机
(17)ROM的简单实现



一、题目描述

实现一个深度为8,位宽为4bit的ROM,数据初始化为0,2,4,6,8,10,12,14。可以通过输入地址addr,输出相应的数据data。

接口信号图如下:
在这里插入图片描述

输入描述:
clk:系统时钟
rst_n:异步复位信号,低电平有效
addr:8bit位宽的无符号数,输入到ROM的地址
输出描述:
data:4bit位宽的无符号数,从ROM中读出的数据

二、解析与代码

`timescale 1ns/1ns
module rom(
	input clk,
	input rst_n,
	input [7:0]addr,
	
	output [3:0]data
);
reg [3:0] rom[7:0];
always@(posedge clk or negedge rst_n)begin
	if(!rst_n)begin
		rom[0] <= 4'd0;
		rom[1] <= 4'd2;
		rom[2] <= 4'd4;
		rom[3] <= 4'd6;
		rom[4] <= 4'd8;
		rom[5] <= 4'd10;
		rom[6] <= 4'd12;
		rom[7] <= 4'd14;
	end
	else begin 
		rom[0] <= rom[0];
		rom[1] <= rom[1];
		rom[2] <= rom[2];
		rom[3] <= rom[3];
		rom[4] <= rom[4];
		rom[5] <= rom[5];
		rom[6] <= rom[6];
		rom[7] <= rom[7];
	end

end


assign data = rom[addr];
endmodule
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值