要存储断电保存的数据时,就涉及到ROM数据存储,在fpga中,涉及到的相关格式有*.hex,*.mif,*.coe。其中*.hex和*.mif格式是用于altera的rom,*.hex和*.coe格式用于xilinx的rom
在使用fpga查表法时是rom文件调用的典型应用,在此以*.mif格式文件为例说明其生成方法,生成*.mif格式文件的方法有三种,其中涉及宽度和深度两个参数,宽度就是指正弦一个周期360度要按多少位去划分,深度是指幅值1要放大多少倍
1.使用quartus生成,由于需要手动输入,适用于少量数据,点击file->new,选择Memory Initialization File,点击OK
双击单元格即可更改内容
2.使用Mif_Maker软件生成,方便好用,点击设定波形->全局参数
输入数据长度和宽度,点击确定
点击设定波形->正弦波,可查看设置的正弦波形
要注意参数设置不同时,波形的不同,比如,设置格式为有符号10进制,可见正弦起点变化,这直接关系着数据生成的不同
3.使用matlab生成,使用灵活,代码如下所示,其中fopen时分绝对路径和相对路径,如果只写了sin.mif,那sin.mif文件要与*.m文件置于同一路径下,floor为向下取整,相关的函数还有round(四舍五入取整)以及ceil(向上取整),fix(向零方向取整)
三种方法中2和3方法推荐使用,使用灵活便捷