名称:存储器仿真设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
存储器仿真设计
1.计算机有8条数据线,15条地址线,MREQ,R/W等控制线。存储器按字节编址。
2.用8K×8bit的ROM芯片组成16KB的ROM,ROM的起始地址0000H,ROM存放的8位数据为相应地址值的平方,在片选信号和读使能信号有效时根据地址输出数据。
3.要求按照题目进行逻辑抽象,决定外部的端口(名称、有效电平)和内部功能,画系统框图,使用层次结构法用 Verilog HDL编程,设计仿真数据进行功能仿真。
4.每人提交一份项目的设计实现报告,报告内容结构参考实验报告模板。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
ROM模块仿真图
地址控制模块仿真图
部分代码展示:
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2024/07/02 21:03:17 // Design Name: // Module Name: ROM_ctrl // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// //ROM存储器仿真 module ROM_ctrl( input clk,//时钟 input rst,// 复位,高电平有效 input [14:0] addr,//地址线 input MREQ,//为低电平的时候,片选信号有效 input RW,//低电平读,高电平写,本代码只读,故RW需要输入低电平 output [7:0] data_o //ROM数据线 ); wire rom_en_1; wire rom_en_2; wire [7:0] douta_1; wire [7:0] douta_2; wire [12:0] addra_1; wire [12:0] addra_2; //8K*8 ROM ROM_8K ROM_8K_1 ( .clka(clk), // input wire clka .rsta(rst), // input wire rsta .ena(rom_en_1), // input wire ena .addra(addra_1), // input wire [12 : 0] addra .douta(douta_1) // output wire [7 : 0] douta ); //8K*8 ROM ROM_8K ROM_8K_2 ( .clka(clk), // input wire clka、 .rsta(rst), // input wire rsta .ena(rom_en_2), // input wire ena .addra(addra_2), // input wire [12 : 0] addra .douta(douta_2) // output wire [7 : 0] douta ); //地址控制模块 addr_ctrl
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1099
700