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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

( E" |- F' ^5 D3 l
大家好,又到了每日学习的时间了,今天我们来聊一聊使用matlab和ISE 创建并仿真ROM IP核。本人想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据再经过matlab显示图像;图像首先通过matlab或者C语言保存在TXT文档中,生成测试向量文件,然后在仿真软件中进行仿真处理,把处理后的数据保存为TXT格式,最后用matlab显示,观察结果。一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。' F5 H: o) b- D+ H
, P, C! o, H. t
用Quartus II创建并仿真ROM的步骤:
+ B; K2 `7 w$ I# M. R* Q6 G) h1.在Quatus工程下生成一个ROM; _+ {4 m. w* l* a4 u
2.编写.mif文件,作为ROM的初始化文件
. Q' V8 {$ A( D% t- j0 d, d3.将.mif文件拷贝到Modelsim工程下
. A5 [2 N" L, k1 Z! U; ?4.进行Modelsim仿真7 T3 z7 _' i7 l8 N) E, e

! n# q& C& E4 J7 C* M, [" V' R, A; }& D4 z" z
图像保存的步骤:, c/ N" _" h# C& z1 p, X& Q
1.使用matlab将图像生成txt文。4 d7 s% L% Q5 `0 m* s  \

* e$ A0 k) V5 `3 O( \/ F" F$ o' L) Z/ @  _; k, K
2.创建mif文件(Memory Initialization File):使用mif生成器、C语言或者matlab语言来生成;选择直接使用matlab生成mif文件gray_image.mif;
, _; W0 w5 k7 n+ c& v
$ s* J) z/ d( Z5 C
, @( ~. }" C. I: q- {生成的mif文件如下图所示:: G# p- ?. T) c$ [
* p7 ~& S0 W3 U) m
. C3 a0 B) }9 T
3.调用mif文件生成ROM(verilog文件即.v文件)
3 D* K& r& @9 T# c! [
6 k3 Q. r! z! }4 ^" y+ t  i使用Xilinx创建并仿真ROM的步骤:( Q8 T, z& z) Z
1.编写.coe文件,作为ROM的初始化文件,.coe文件的格式和内容如代码所示:& l$ \, F& w4 W, u$ C( p

6 A: H6 R: @: A
* `2 l" K, {5 u, o5 ~6 J& i. B$ D+ z2 ?2.生成的.coe文件格式如下图所示:
( ]: n/ K( w+ G0 t
& z$ Y! m# S* n. |  H- ~* H
+ Y+ h+ V5 z$ Q% b2 j4 ]( z; v3.使用Xilinx中的Core Generator完成ROM的例化(生成的.coe文件的图像数据是一行行进行读取的)。打开ISE,右键单击New Source,如下图所示:9 m, x2 Z) W8 K/ s% m+ Y5 D; e4 ^6 y% ^

1 U8 R6 G7 n! ?" O
% A" _* g) X0 R0 Z6 H; b2 a0 c单击之后选择IP_Core_Generator," _2 p6 |3 _% Z
: ?+ M/ a2 }3 W- `' {3 d! I

/ Z) t# M9 _" O; B' h单击Next选项,选择Memories&Storage Elements->RAMs&ROMs->,选择块式存储或者分布式存储(这里根据存储数据的大小进行选择,较小的可以选择块式存储)。
& O6 f, g6 u4 @3 `* K8 E% n / @, b3 }) m" E7 s) U+ z

# h- M# U( h- G4 \* B2 u点击Next,然后Finish。然后就出现了下面的界面,一直点击Next进行ROM属性的一些设置,直至完成:* r: ~8 |. i1 H' W, C& |* D

+ Y6 r9 H% n- G! v/ A# Y
2 G! C: c$ D2 {& O8 Q% t$ B7 m! a
然后就要选择所需要的ROM的大小:
8 m9 v; D( ?. e ' i$ y* N& K. c: K6 c0 O
3 d- {2 c" L* C& q
# V: E3 w% _' A
portA 表示输出要不要时钟打拍输出,这个是在mux里实现的; 在添加初始化文件的时候,将之前matlab生成的.coe文件添加到ROM IP核中去。, Q- _9 Y: Y: q5 x! o6 o

  m  N1 I. x/ `9 z: c, }; T 1 {; B$ ]0 G- q3 g% w4 @6 F( V5 K

; e( D0 x: \/ y% \6 D  i一直next下去,就可以得到初始化好的ROM IP核,可以在./ipcore_dir目录下查看ROM文件,从而可以在顶层模块中对ROM进行例化。% _) X# d$ f/ D1 z1 Y  _2 p9 Q
* o+ v$ w2 \0 }5 `2 y
- J! h& x# }5 T2 `
生成的ROM文件的输入输出变量如下:( @" r$ j! l- `6 I9 ?+ x. `0 s$ t
/ y- }6 u: T( [* U, {! B

2 J$ f0 T2 Z- T4 W0 E; g在顶层模块中对ROM进行例化如下:5 `9 |( y" B3 C' m9 X6 b" ~& ]9 {, I
6 K% O5 F. K$ n/ i4 B8 z
+ T$ I; K' h% z& w- ]) f
4.使用CoreGenerator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件复制到Modelsim工程下进行仿真。
! B9 M- E0 i7 v( s* A8 L; [& _: m3 O7 @
5.查看ROM模块中的初始化数据,双击Rom模块,出现如下图的界面,点击show按钮,即可查看数据;
& z9 I  t1 O+ t* |# z! \" f3 n) I
& P, e, i3 s' ~' j( ?6 I+ K
% M. a7 c# p, X% X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-29 05:39 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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