3369|1

324

帖子

123

TA的资源

一粒金砂(高级)

楼主
 

Cyclone V试用报告二 ROM空间测试 [复制链接]

FPGA中“时间”和“空间”是两个比较重要的概念。所谓时间,多指系统运行速度;空间,大都关乎逻辑门、内存等资源的使用。在FPGA开发中,以时间换空间和以空间换时间是经常用到的。随着FPGA资源越来越丰富,人们似乎不再那么关心空间使用,更关心时间资源。内存空间的使用可以通过牺牲空间来提升系统运行速度,Cyclone V 拥有丰富的存储资源:
■ DDR3 SDRAM
            ■ Four 128-Mbyte (MB) device with a 16-bit data bus
            ■ Two 128-MB device with a 8-bit data bus
■ One 18-MB SSRAM
■ One 512-MB synchronous flash        
通过向导,建立调用ROM的IP核:
Tools--MegaWizard Plug-In Manager:

FPGA大部分封装好的IP核都可以通过该方式调用,可以看出,可用的IP核还是很丰富的。


可以选择需要的存储类型,


按照向导一步步设置就可以,Cyclone V 新增M10K,比原来的M4K 使用更加便捷。

在设置过程中,需要添加.mif/.hex文件,该文件存储了rom表里面的数据,mif文件的获取可以通过C编程或Matlab编程获得:
以存储正弦波数据为例,可通过C语言编程获取,
         #include "stdio.h"
#include "conio.h"
#include "math.h"
main()
{
    int i;
    float j;
    int y;
    FILE *fp;
    if((fp = fopen("rom.mif", "wa")) == NULL)
        exit(1);
    for(i = 0; i < 128; i++)
    {
        y = 128 * sin(j) + 128;
        fprintf(fp, "%d:%d;\n", i, y);
        j += 2 * 3.1416 / 128;
    }
    fclose(fp);
    printf("Hello, world\n");
    getch();
}

Matlab编程参考如下:
width=10; %宽度是10,指数据位数
depth=1024; %深度是1024,指地址位数
index = linspace(0,pi/2,depth);
sin_a=sin(index); %归一化
sin_d=fix(sin_a*(2^width-1)); %量化
plot(sin_d);
axis([0,depth-1,0,2^width-1]);
%===============================
%¿ªÊ¼Ð´mifÎļþ
%===============================
addr=0:depth-1;
str_width=strcat('WIDTH=',num2str(width));
str_depth=strcat('DEPTH=',num2str(depth));
fid=fopen('d:\sin.mif','w'); %新建mif文件,存放任意位置和文件名任意
%如果只写文件名,则在当前目录下建立此文件
fprintf(fid,str_width);
fprintf(fid,';\n');
fprintf(fid,str_depth);
fprintf(fid,';\n\n');
fprintf(fid,'ADDRESS_RADIX=HEX;\n'); %%%下面的数据输入选择16进制,可根据情况改写
fprintf(fid,'DATA_RADIX=HEX;\n\n');
fprintf(fid,'CONTENT BEGIN\n');
fprintf(fid,'\t%X : %X;\n',[addr;sin_d]) %开始写数据
fprintf(fid,'END;\n');
fclose(fid);

在设置完之后,会看到向导生成的文件:


可以直接调用rom_inst.v里面的子模块:
sin_test rom_test_inst (
.address ( address_sig ),
.clock ( clock_sig ),
.q ( q_sig )
);

直接在主模块里面调用即可。

[ 本帖最后由 buer1209 于 2012-12-9 10:47 编辑 ]
此帖出自FPGA/CPLD论坛

最新回复

太高深,看不懂啊。  详情 回复 发表于 2012-12-9 22:20
点赞 关注
 

回复
举报

2113

帖子

0

TA的资源

裸片初长成(初级)

沙发
 
太高深,看不懂啊。
此帖出自FPGA/CPLD论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表