|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
这篇讲ROM,在FPGA中的ROM可以同过加载文件的方式初始化ROM(就像定制IP核时加载coe文件),也可以通过case的方式在代码中进行初始化,这篇博文讲通过加载文件的方式初始化ROM,之后通过仿真读出来数据,看看是否成功。* T, t) I5 Q+ P0 c( ?8 w
' N3 t1 J1 Q: i5 z8 Q! v& ]
- N w$ @7 l$ h
Verilog描述:' D2 s8 W/ t! n) L6 H: ~, x X
/ {; c& z& b$ I$ h
, M; K; `. W; }& r! Q) N. E6 `- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- // Create Date: 2019/05/28 23:15:15
- // Design Name:
- // Module Name: rom_using_file
- //////////////////////////////////////////////////////////////////////////////////
- module rom_using_file (
- input [7:0] address , // Address input
- output [7:0] data , // Data output
- input read_en , // Read Enable
- input ce // Chip Enable
- );
- reg [7:0] mem [0:255] ;
- assign data = (ce && read_en) ? mem[address] : 8'b0;
- initial begin
- $readmemb("G:/Verilog_file/Memory_/Memory_.srcs/sources_1/new/memory.list", mem); // memory_list is memory file
- // G:/Verilog_file/Memory_/Memory_.srcs/rom_using_file_sim/new/memory.list
- //G:/Verilog_file/Memory_/Memory_.srcs/sources_1/new/memory.list
- end
- endmodule
0 ?6 e* G3 n4 U4 g+ m' @ 6 \" ]- i. ?$ ]: J- x' Z
. d# J3 l: w! e8 T
0 R8 M+ c- z! l0 G* p+ ~ z- Y" {6 i" d+ y* y `
7 {6 X) K1 N6 U* o最文章的最后会粘出初始化文件memory.list.4 e: q* i4 m4 g9 I& w$ I; z
J* Q7 x' q, W# Z H3 l4 F2 s! t- ^6 D
通过在FPGA中测试,使用readmemb读出初始化数据时候,memory.list的路径要全,且分隔符是/而不是\。
3 g; M1 f- A4 X+ H
5 a) d9 o* A) v$ a
5 P* J$ {% L9 O; X( w" A. B1 l* \8 ?/ k% m1 |* R. O) f( C
- c3 ]+ h1 E, q: J
1 a! d8 G; T' @( g) J
# `6 M9 ]8 p5 G$ a% z6 f# x5 |
5 t# v: Z& u/ Q9 D8 V0 S; `, F6 e- H* }" p; B
# v6 b) v1 J7 T& n |
|