【Verilog】期末复习——设计有32个16位存储器的ROM

系列文章

数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter)
运算符
数据流建模
行为级建模
结构化建模
组合电路的设计和时序电路的设计
有限状态机的定义和分类
期末复习------数字逻辑电路分为哪两类?它们各自的特点是什么?
期末复习------VerilogHDL描述数字逻辑电路的建模方式有哪三种?它们的特点是?
期末复习------解释下列名词(FPGA、ASIC、IP、RTL、EDA、HDL、FSM)
期末复习------简要说明仿真时阻塞赋值和非阻塞赋值的区别。always语句和initial语句的关键区别是什么?能否相互嵌套?
期末复习------设计带进位输入和输出的8位全加器,包括测试模块
期末复习------举重比赛有三名裁判,当运动员将杠铃举起后,须有两名或两名以上裁判认可,方可判定试举成功,若用A、B、C分别代表三名裁判的意见输入,同意为1,否定为0;F为裁判结果输出
期末复习------设计一个带异步复位端且高电平有效的32分频电路
期末复习------设计带异步清零且高电平有效的4位循环移位寄存器
期末复习------设计11011序列检测器电路



设计有32个16位存储器的ROM

位宽是16位,个数是32个。也就是说数据线有16根,地址线有5根。

verilog 复制代码
module rom(clk,cs_n,addr,dout)
    input clk,cs_n;
    input[4:0] addr;//地址线是5根
    output reg[15:0] dout;//数据是16位的
    //定义ROM
    reg[15:0] rom[31:0];//reg后紧跟着的是存储器的位数,rom后面的是存储器的个数
    //给ROM赋初值
    integer i;
    initial 
        begin
            for (i=0;i<31;i=i+1)
                rom[i]=16'h00000000;
        end
    //根据地址取单元里的内容
    always @(*)
        begin
            if (cs_n==1) dout<=16'bzzzzzzzz;
            else dout<=rom[addr];
        end
endmodule
相关推荐
cycf10 小时前
CRC校验
fpga开发
landyjzlai11 小时前
AMBA总线(15)关于AXI-stream(sg模式)
arm开发·fpga开发·amba
白狐_79812 小时前
Quartus Prime 新手完全使用指南
fpga开发
Aaron15881 天前
三种主流接收机架构(超外差、零中频、射频直采)对比及发展趋势浅析
c语言·人工智能·算法·fpga开发·架构·硬件架构·信号处理
博览鸿蒙1 天前
一颗数字系统是如何在 FPGA 上“跑起来”的?
fpga开发
雨洛lhw1 天前
FPGA JTAG接口设计全解析
fpga开发·jtag
minglie12 天前
iverilog 配合 Makefile 搭建 Verilog 仿真工程
fpga开发
芒果树技术2 天前
MangoTree案例分享:基于AtomRIO FPGA平台,客户实现自适应主动减振
测试工具·fpga开发·模块测试
雨洛lhw2 天前
按键电路设计的细节
fpga开发
minglie12 天前
vio_uart的浏览器版上位机
fpga开发