当前位置:首页 > 编程笔记 > 正文
已解决

「Verilog学习笔记」ROM的简单实现

来自网友在路上 178878提问 提问时间:2023-11-21 13:17:34阅读次数: 78

最佳答案 问答题库788位专家为你答疑解惑

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

分析

        要实现ROM,首先要声明数据的存储空间,例如:[3:0] rom [7:0];变量名称rom之前的[3:0]表示每个数据具有多少位,指位宽;变量名称rom之后的[7:0]表示需要多少个数据,指深度,注意这里深度为8,应该是使用[7:0],而不是[2:0]

       声明存储变量之后,需要对rom进行初始化,写入数据,然后将输入地址作为rom的索引值,将索引值对应的数据输出。

`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] ; assign data = rom_data[addr] ; always @ (posedge clk or negedge rst_n) begin 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 ;endelse begin rom_data[0] <= rom_data[0] ;rom_data[1] <= rom_data[1] ;rom_data[2] <= rom_data[2] ;rom_data[3] <= rom_data[3] ;rom_data[4] <= rom_data[4] ;rom_data[5] <= rom_data[5] ;rom_data[6] <= rom_data[6] ;rom_data[7] <= rom_data[7] ;endendendmodule
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"「Verilog学习笔记」ROM的简单实现":http://eshow365.cn/6-41247-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!