生活随笔
收集整理的這篇文章主要介紹了
ROM简单实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ROM簡單實現
題目描述
實現一個深度為8,位寬為4bit的ROM,數據初始化為0,2,4,6,8,10,12,14。可以通過輸入地址addr,輸出相應的數據data
接口信號圖如下:
`timescale 1ns/1ns
module rom(input clk,input rst_n,input [7:0]addr,output [3:0]data
);//rom定義:reg 位寬 變量名 深度reg [3:0] rom [7:0];//ROM初始化的時候寫入一次,之后只能讀integer i;always@(posedge clk or negedge rst_n)beginif(!rst_n)beginrom[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;endelse //保持rom的值beginfor(i = 0;i < 8; i = i+1)begin:rom_irom[i] <= rom[i];endendendassign data = rom[addr];// reg [3:0] data_reg;
// always@(posedge clk or negedge rst_n)
// begin
// if(!rst_n)
// data_reg <= 4'd0;
// else
// begin
// case(addr)
// 8'd0:data_reg <= rom[0];
// 8'd1:data_reg <= rom[1];
// 8'd2:data_reg <= rom[2];
// 8'd3:data_reg <= rom[3];
// 8'd4:data_reg <= rom[4];
// 8'd5:data_reg <= rom[5];
// 8'd6:data_reg <= rom[6];
// 8'd7:data_reg <= rom[7];
// default:data_reg <= rom[0];
// endcase
// end
// end// assign data = data_reg;
endmodule
總結
以上是生活随笔為你收集整理的ROM简单实现的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。