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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
转——使用matlab和ISE 创建并仿真ROM IP核
; ~& h! H5 K( m6 H) f8 a1 m
大家好,又到了每日学习的时间了,今天我们来聊一聊使用matlab和ISE 创建并仿真ROM IP核。本人想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据再经过matlab显示图像;图像首先通过matlab或者C语言保存在TXT文档中,生成测试向量文件,然后在仿真软件中进行仿真处理,把处理后的数据保存为TXT格式,最后用matlab显示,观察结果。一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。/ ]' m8 c5 P( Z! Z: h

/ x9 W' X% M1 g1 N% d- |用Quartus II创建并仿真ROM的步骤:% g8 i2 P1 W1 Y: e- W; r, a* h
1.在Quatus工程下生成一个ROM( c  t1 F4 f  k5 L/ e3 d
2.编写.mif文件,作为ROM的初始化文件
5 B7 Q/ U6 E4 W3.将.mif文件拷贝到Modelsim工程下* r6 z4 i6 f- j  l& K
4.进行Modelsim仿真9 y& A6 s( F6 X3 F( P1 v4 C/ Y

4 U) j5 N2 G& H% A+ ?0 Z
* f9 X! x2 P) ?, @  g: x  \图像保存的步骤:
, f  P1 O+ h; Y7 K2 Q: P* X' z0 s) j% C1.使用matlab将图像生成txt文。) |3 a0 S3 P1 K+ ^$ X3 K* a
, Y! b6 V% t& k5 P" R0 K
/ x% {, V9 }- S
2.创建mif文件(Memory Initialization File):使用mif生成器、C语言或者matlab语言来生成;选择直接使用matlab生成mif文件gray_image.mif;
7 F! m  B6 K: q% \0 m * U$ m1 W/ W3 m6 ]' K( D
0 p( C. g3 @  |% Z' v: h: d
生成的mif文件如下图所示:: o. K& e7 L5 g8 w4 V5 w
2 J( x* N8 m: D. ]
6 S  ~- z3 L1 ]! L
3.调用mif文件生成ROM(verilog文件即.v文件)& L1 P1 D9 F$ K' n

; X% L, Q3 R: f' E5 a6 `, ]使用Xilinx创建并仿真ROM的步骤:
: G& J2 S, p1 N% u* i' J1.编写.coe文件,作为ROM的初始化文件,.coe文件的格式和内容如代码所示:, f- L7 {5 @( L* r, }
& g+ M% i  g0 N3 @: t$ a
4 h# Z( z8 H1 ]
2.生成的.coe文件格式如下图所示:
2 ]( ?. o8 @8 i
+ v/ p9 O: a+ n2 S$ q1 ~) V2 N
$ d  b! i/ F/ @  R3.使用Xilinx中的Core Generator完成ROM的例化(生成的.coe文件的图像数据是一行行进行读取的)。打开ISE,右键单击New Source,如下图所示:  d3 p+ I& u+ `7 L2 g* R

9 A) p+ E; Y4 E) c' P, ]
4 B  u! V2 o8 A6 b5 \4 N7 |单击之后选择IP_Core_Generator,
' c# k* i* X$ a) A. f- Q- n ) @7 R/ @9 X" A4 ]! R  a9 @

# @% L, W* i7 d- P! w9 i单击Next选项,选择Memories&Storage Elements->RAMs&ROMs->,选择块式存储或者分布式存储(这里根据存储数据的大小进行选择,较小的可以选择块式存储)。
3 w5 D7 T0 g5 }5 f3 h  m( b6 H/ j
, C1 i$ h- \- i4 S9 p0 v) @2 b
4 Q/ o+ d) ?/ O2 o% c8 n点击Next,然后Finish。然后就出现了下面的界面,一直点击Next进行ROM属性的一些设置,直至完成:
4 R7 Y6 y) z- Z$ D; b# e " \7 P% e; W9 B+ Z' k
$ r. O' |8 K7 Z4 ]+ O

/ \- u( `8 \3 s6 y然后就要选择所需要的ROM的大小:4 f, H/ O" X1 q- F) W; q

1 w( @) P$ \( \
; t  p) Q$ U& D" e$ W
1 Z- }* [: d8 n% L& E4 u! \portA 表示输出要不要时钟打拍输出,这个是在mux里实现的; 在添加初始化文件的时候,将之前matlab生成的.coe文件添加到ROM IP核中去。
# u9 L5 L  H( d+ F( ^ - y+ M% C2 l& |% m

9 F5 J0 J( l6 }$ z/ h. x6 H2 V* ~1 R, X0 U
一直next下去,就可以得到初始化好的ROM IP核,可以在./ipcore_dir目录下查看ROM文件,从而可以在顶层模块中对ROM进行例化。0 K3 ]3 }/ X# ?3 h* a2 [8 ~

% L+ C* Q5 K! p8 H* k
  s; Z& r0 L; S& A* j; E生成的ROM文件的输入输出变量如下:
! V% l1 J3 L3 f" S 6 a; j% h0 C  q4 w
# V+ U$ M$ w' P$ f, H4 p3 |
在顶层模块中对ROM进行例化如下:& j8 q# D: N- c& y

0 h1 Y9 {% B5 {1 |8 h' h+ C, X
/ N8 G, g+ r6 t' R$ C, g5 y  \4.使用CoreGenerator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件复制到Modelsim工程下进行仿真。3 A. ?# w* L$ }# C

( N3 P# [8 |, r; s5.查看ROM模块中的初始化数据,双击Rom模块,出现如下图的界面,点击show按钮,即可查看数据;
; j2 ^7 `1 {5 e# @1 b
: A9 T! y. u9 x1 P% H' B" L

" \+ p7 p1 J  B4 l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 14:43 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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