|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
这篇讲ROM,在FPGA中的ROM可以同过加载文件的方式初始化ROM(就像定制IP核时加载coe文件),也可以通过case的方式在代码中进行初始化,这篇博文讲通过加载文件的方式初始化ROM,之后通过仿真读出来数据,看看是否成功。
, D7 b X. x8 G' k6 C7 i* ^( T# [6 `( G' l
! I3 X7 ]' y5 j5 I& Q% \3 w: VVerilog描述:
/ v: Q! O* i. c# L3 s: n8 ?5 V
# }$ Q" r$ Q6 B9 L/ J* d! n# ^6 c0 ~0 S9 e5 u9 g5 b8 ^
- `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
! F' h+ ~7 E' l
4 F: L. B3 Z& ^; n: O5 w$ `" v! i' W7 k! c/ s- K
: `/ p; N; E; ~% \ ~# [
?: e- G% F. x$ E
" B9 f U& k/ G! X; F8 p \最文章的最后会粘出初始化文件memory.list.
6 g7 J% O( p0 D) @( ]' q+ T8 `) H5 W7 x! P
3 ^- E- i+ {; f$ T
通过在FPGA中测试,使用readmemb读出初始化数据时候,memory.list的路径要全,且分隔符是/而不是\。9 W6 A+ N- F5 C7 ]0 w' I
2 L* X) g; C$ S5 J1 G- P
c4 @# j' c& ~: Y
3 R' ~) h7 [2 S. B( c% y
: k/ V$ k* v! l! x! L
+ a, L8 p& H7 L7 ]1 z/ I P
) U9 }& X B. A! d p8 o
( i+ D+ D/ x" W, |
* I- W1 ^7 o4 I" T# ^
" ^8 [% |- u+ W/ ?# K( a |
|