找回密码
 注册
关于网站域名变更的通知
查看: 671|回复: 1
打印 上一主题 下一主题

转——使用matlab和ISE 创建并仿真ROM IP核 

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-18 07:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
转——使用matlab和ISE 创建并仿真ROM IP核

- o. q* s; M8 ^1 [* s
大家好,又到了每日学习的时间了,今天我们来聊一聊使用matlab和ISE 创建并仿真ROM IP核。本人想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据再经过matlab显示图像;图像首先通过matlab或者C语言保存在TXT文档中,生成测试向量文件,然后在仿真软件中进行仿真处理,把处理后的数据保存为TXT格式,最后用matlab显示,观察结果。一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。
( C- @. p( b$ ?" U  m+ g* F  \+ `; K
用Quartus II创建并仿真ROM的步骤:7 t2 }; i# s# T) q9 v
1.在Quatus工程下生成一个ROM9 j2 L& H, w, S+ g! y/ a
2.编写.mif文件,作为ROM的初始化文件
* B+ a9 h8 t# V7 ?5 E& i3.将.mif文件拷贝到Modelsim工程下, N/ \/ N9 e' C* q4 i. L
4.进行Modelsim仿真
) \6 _: W; z1 ?% ~* ~' G2 ^, u
7 u% Z( c& o3 z. }. S+ C! X! a  i- R5 N2 k9 W
图像保存的步骤:' J  I6 \) R& Z& W6 K; q
1.使用matlab将图像生成txt文。
9 C7 u5 @/ m  m1 }, H' `' p$ V6 c
) E. g7 \2 B, S; G8 o. j7 _8 C. n- w+ \& x( v. m
2.创建mif文件(Memory Initialization File):使用mif生成器、C语言或者matlab语言来生成;选择直接使用matlab生成mif文件gray_image.mif;+ t8 a- {1 j7 a: S* c
; i5 q* ]# |, m7 O' r: E

1 f; G3 `" f; K! r5 w生成的mif文件如下图所示:7 D, s8 B0 ?7 A

3 I/ i6 @0 C' E2 E1 W7 U# O
, J* v7 |, L5 U0 a# ?! G3.调用mif文件生成ROM(verilog文件即.v文件)# M$ D3 H" a3 Q0 D( k/ c$ j

. m1 T& ]" j* K$ s0 Z" Q+ d使用Xilinx创建并仿真ROM的步骤:5 p" U* c4 h! T7 S( F2 H
1.编写.coe文件,作为ROM的初始化文件,.coe文件的格式和内容如代码所示:
1 f6 V, F' W( u$ y 5 O( Y( h# N% _. B+ N7 l

/ W+ @& q0 v4 E( z0 t( V2 T2.生成的.coe文件格式如下图所示:1 B/ m: V& ]) p# Z9 }

( x! N9 T! [" J7 t/ v' q1 |
' ~, x3 V, P2 j3 w9 {0 b3.使用Xilinx中的Core Generator完成ROM的例化(生成的.coe文件的图像数据是一行行进行读取的)。打开ISE,右键单击New Source,如下图所示:, v5 f0 o  \' h! c6 d. ?
; ~4 |- a6 z& ^6 o5 i3 g, P

8 y1 u; U# m+ [8 f单击之后选择IP_Core_Generator,
. ?7 {' q$ ?% N" C4 X# z
! N4 v" t9 {$ o! @/ Y
5 P0 V$ k' h" w2 c) n& i( i单击Next选项,选择Memories&Storage Elements->RAMs&ROMs->,选择块式存储或者分布式存储(这里根据存储数据的大小进行选择,较小的可以选择块式存储)。
0 P' ]& ]5 Q7 ` ! m- v/ a% D3 r) r) v5 P" ?( z0 B5 S
4 K/ V; h7 l- ]
点击Next,然后Finish。然后就出现了下面的界面,一直点击Next进行ROM属性的一些设置,直至完成:
1 K0 e* m, o9 f, H; ^- ]
( V6 h; Y3 U5 p! b) a$ [# n$ i
! z* }1 P3 t  _
# s, N: \% _) e" y) U0 j然后就要选择所需要的ROM的大小:
/ C8 x9 L  g7 o  B 9 }* L% {7 X6 T

7 g$ X9 y0 B* \
) Y- [6 v' {% d8 c& c6 HportA 表示输出要不要时钟打拍输出,这个是在mux里实现的; 在添加初始化文件的时候,将之前matlab生成的.coe文件添加到ROM IP核中去。$ c2 G, ?4 @( u: i8 [7 v7 L( B

4 E& J3 K1 C; G2 o4 v2 M" x* ? 8 P5 `/ u9 ^( D4 `$ ]- P- U  z0 u
$ g9 x7 g1 G5 q* t2 b0 h% U
一直next下去,就可以得到初始化好的ROM IP核,可以在./ipcore_dir目录下查看ROM文件,从而可以在顶层模块中对ROM进行例化。
% H) l+ ^, E: {" D1 e6 B2 G4 z2 T " o, q9 i# b! H. {2 e$ i; Q' ?

1 }, s  W) P# y( T5 K+ m4 F生成的ROM文件的输入输出变量如下:
$ N. p" W$ ^0 V# T) o ! |; C" k  m, N

$ L0 _1 O% {# h2 k# j2 n在顶层模块中对ROM进行例化如下:$ u0 b  L! d1 h4 L- F
, l, f, c) n. O9 Z+ w' U$ |

/ C$ n' _0 c; ^+ `4.使用CoreGenerator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件复制到Modelsim工程下进行仿真。7 k% t" t* a/ @/ x0 J2 w) s: p
  s( q; ^3 B' Z6 K$ C+ m
5.查看ROM模块中的初始化数据,双击Rom模块,出现如下图的界面,点击show按钮,即可查看数据;
% Q5 E8 c" q. Y" {

- V4 X9 O3 _3 y& ?# v2 P! T+ b0 u" e4 a" G5 \1 C, S2 Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-28 14:13 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表