FPGA零基础学习之Vivado-ROM使用教程

原创 FPGA技术江湖 2023-06-06 07:43

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。“煮酒言欢”进入IC技术圈,这里有近100个IC技术公众号。


大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。

系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。本次带来Vivado系列,ROM使用教程。话不多说,上货。


ROM使用教程


作者:李西锐  校对:陆辉


ROM的英文全称为Read-Only Memory,即只读存储器。可以从任意地址上读取数据,但是不能写入。那么我们ROM中的数据,就需要我们提前存放进去,在IP核中,我们可以通过.coe文件进行数据存放,文件格式我们可以参考Xilinx官方标准。

数据文件的格式是固定的,我们在填充数据时,需要严格按照官方的格式进行书写。

在示例文件中,第一行规定了数据的格式,此处规定的是二进制,那么下面的数据,我们必须用二进制的形式。大家在写的时候,规定什么进制就用什么进制。数据与数据之间用逗号隔开,最后一个数据用分号结尾。

了解了数据文件格式之后,接下来我们提前准备一个数据文件,以便于后续我们调用IP核去使用。写数据文件的方法有很多,在此给大家介绍一种:MATLAB。

我们打开MATLAB之后,首先先选择一下工作路径,以便于我们去找到我们生成的文件以及保存我们的代码。如图:


打开如图所示的图标之后,选择好工程路径。

选择好之后,我们新建脚本文件,然后写入代码。

1   data = 0:1:255;2   fid = fopen('sin_data.coe','w');3   fprintf(fid,'memory_initialization_radix = 10;\n');4   fprintf(fid,'memory_initialization_vector = \n');5   for i = 1:1:10246     fprintf(fid,'%d',round(127*sin(2*pi/1024*i)+127));7     8     if i == 10249       fprintf(fid,';');10    else11      fprintf(fid,',');12    end13    14    if mod(i,1) == 015      fprintf(fid,'\n');16    end17  end18  fclose(fid);

写好代码,点击运行,即可生成我们想要的.coe文件。数据文件准备好之后,接下来我们就可以调用IP核了。

首先我们新建一个工程

在第二步选择路径

第三步直接跳过,第四步选择我们的芯片,芯片型号为XC7A35TFGG484-2。

选中型号之后,点击Next。

工程新建完成之后,开始新建文件。

首先我们先新建IP核,打开IP Catalog,在窗口搜索block

找到如图所示选项,然后双击打开。

我们在框选的选项中,选择Single Port ROM。这个选项中总共有五个选项。第一个为单端口RAM,第二个为伪双端口RAM,第三个为真双端口RAM,第四个为单端口ROM,第五个为真双端口ROM。我们此次使用的是单端口ROM。

图中框选出了四处,第一处需要我们修改一下数据的位宽以及深度,位宽我们默认使用8bit,深度为1024。因为我们在前面做了一个数据量为1024的.coe文件,所以这里深度改为1024。第二处为数据输出使能,在此我们选择为Always Enabled。使我们的输出使能一直有效。第三处为输出寄存器,输出会在时钟下输出,导致结果会慢一拍,在此处我们不需要这个选项,因此取消勾选。第四处为ROM复位的设置,如果有需要,可以进行勾选,此处,我没有使用复位信号,大家在使用时自行选择。

此处我们需要勾选中加载初始化文件的选项,然后点击Browse找到我们提前生成好的数据文件。选择好之后点击OK,生成IP核。

直接点击Generate。

IP核生成好之后,我们新建文件,写一下我们的地址控制模块。代码如下:

1   module addr_ctrl(2     3     input   wire           clk,4     input   wire           rst_n,5     output   reg     [9:0]    addr6   );7 8     always @ (posedge clk, negedge rst_n)9     begin10      if(rst_n == 1'b0)11        addr <= 10'd0;12      else if(addr == 10'd1023)13        addr <= 10'd0;14      else15        addr <= addr + 1'b1;16    end1718  endmodule

然后我们新建顶层文件。写好端口之后,我们将IP核与地址控制模块例化到顶层当中。

点击Next,选择Create File,新建顶层开始写代码。

打开IP核例化的头文件。

复制粘贴到顶层当中。地址控制模块也同样进行例化。顶层代码如下:

1   module rom(2     3     input   wire           clk,4     input   wire           rst_n,5     output   wire     [7:0]    q6   );7     8     wire     [9:0]      addr;9     10    addr_ctrl addr_ctrl_inst(11    12    .clk      (clk),13    .rst_n      (rst_n),14    .addr      (addr)  15  );16    17    blk_mem_gen_0 blk_mem_gen_0_inst (18      .clka(clk),    // input wire clka19      .addra(addr),  // input wire [9 : 0] addra20      .douta(q)  // output wire [7 : 0] douta21    );2223  endmodule

代码写好之后,保存编译,没有错误,那么我们写一下仿真看一下仿真波形。

选中新建仿真文件,点击Next输入名字。

点击OK,开始写代码。仿真代码如下:

1   `timescale 1ns / 1ps2 3   module rom_tb;4 5     reg            clk;6     reg            rst_n;7     wire     [7:0]    q;8 9     initial begin10      clk = 0;11      rst_n = 0;12      #105;13      rst_n = 1;14      #10000;15      $stop;16    end17    18    always #10 clk = ~clk;19    20    rom rom_inst(21    22    .clk      (clk  ),23    .rst_n      (rst_n  ),24    .q        (q    )25  );2627  endmodule

代码写好之后,打开仿真。

波形窗口打开后,点击run all让波形继续运行

然后看到如图所示波形。

然后选中输出q,右键选择wavaform style,然后选择analog就可以看到我们的数字信号就变成了模拟信号。

但是此时波形只有一部分,我们再次点击run all ,然后点击break

就可以看到完整的正弦波。

我们的数据文件就是做的正弦波,仿真显示正确。



- End -


福利】:QQ交流群173560979,进群备注名字+学校/企业。
淘宝店铺:https://shop588964188.taobao.com
论坛网址:www.sxznfpga.com
叁芯智能FPGA课程

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

备注姓名+公司/学校+岗位/专业进群

FPGA技术江湖 任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
评论
  • 一、蓝牙射频电路设计的核心价值在智能穿戴、智能家居等物联网设备中,射频性能直接决定通信质量与用户体验。WT2605C等蓝牙语音芯片的射频电路设计,需在紧凑的PCB空间内实现低损耗信号传输与强抗干扰能力。射频走线每0.1dB的损耗优化可使通信距离提升3-5米,而阻抗失配可能导致30%以上的能效损失。二、射频走线设计规范1. 阻抗控制黄金法则50Ω标准阻抗实现:采用4层板时,顶层走线宽度0.3mm(FR4材质,介电常数4.3)双面板需通过SI9000软件计算,典型线宽1.2mm(1.6mm板厚)阻抗
    广州唯创电子 2025-05-13 09:00 33浏览
  •   军事领域仿真推演系统的战略价值与发展前瞻   北京华盛恒辉仿真推演系统通过技术创新与应用拓展,已成为作战效能提升的核心支撑。以下从战略应用与未来趋势展开解析:   应用案例   目前,已有多个仿真推演系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润仿真推演系统。这些成功案例为仿真推演系统的推广和应用提供了有力支持。   一、核心战略应用   1. 作战理论创新引擎   依托低成本仿真平台,军事人员可高效验证新型作战概念。   2. 装备全周期优化   覆盖武器
    华盛恒辉l58ll334744 2025-05-14 16:41 100浏览
  • 文/Leon编辑/cc孙聪颖‍2025年1月至今,AI领域最出圈的除了DeepSeek,就是号称首个“通用AI Agent”(智能体)的Manus了,其邀请码一度被炒到8万元。很快,通用Agent就成为互联网大厂、AI独角兽们的新方向,迅速地“卷”了起来。国外市场,Open AI、Claude、微软等迅速推出Agent产品或构建平台,国内企业也在4月迅速跟进。4月,字节跳动、阿里巴巴、百度纷纷入局通用Agent市场,主打复杂的多任务、工作流功能,并对个人用户免费。腾讯则迅速更新腾讯元器的API接
    华尔街科技眼 2025-05-12 22:29 165浏览
  • 在当下的商业版图中,胖东来宛如一颗璀璨的明星,散发着独特的光芒。它以卓越的服务、优质的商品以及独特的企业文化,赢得了消费者的广泛赞誉和业界的高度关注。然而,近期胖东来与自媒体博主之间的一场激烈对战,却如同一面镜子,映照出了这家企业在光环背后的真实与挣扎,也引发了我们对于商业本质、企业发展以及舆论生态的深入思考。​冲突爆发:舆论场中的硝烟弥漫​2025年4月,抖音玉石博主“柴怼怼”(粉丝约28万)突然发难,发布多条视频直指河南零售巨头胖东来。他言辞犀利,指控胖东来在玉石销售方面存在暴利行为,声称其
    疯人评 2025-05-14 13:49 76浏览
  •   基于 2025 年行业权威性与时效性,以下梳理国内知名软件定制开发企业,涵盖综合型、垂直领域及特色技术服务商:   华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在部队政企开发、建设到运营推广领域拥有丰富经验,在教育,工业,医疗,APP,管理,商城,人工智能,部队软件、工业软件、数字化转型、新能源软件、光伏软件、汽车软件,ERP,系统二次开发,CRM等领域有很多成功案例。   五木恒润科技有限公司:是一家专业的部队信
    华盛恒辉l58ll334744 2025-05-12 16:13 261浏览
  • 在电动出行领域的激烈角逐中,九号公司呈上一份营收净利双涨的成绩单。报告显示,九号公司2024年全年实现总营收141.96亿元,同比增长38.87%;扣非后归母净利润达10.62亿元,同比大幅增长157.24%。更值得关注的是,公司整体毛利率提升3.06个百分点至28.24%,展现出强劲的盈利能力。可当将视角拉远,对标爱玛、雅迪等行业巨擘,便会发现九号的成绩不过是小巫见大巫。财报数据显示,爱玛 2024 年营收 216.06 亿元,净利润 19.8
    用户1742991715177 2025-05-12 19:31 29浏览
  •   电磁数据展示系统平台解析   北京华盛恒辉电磁数据展示系统平台是实现电磁数据高效展示、分析与管理的综合性软件体系,以下从核心功能、技术特性、应用场景及发展趋势展开解读:   应用案例   目前,已有多个电磁数据展示系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁数据展示系统。这些成功案例为电磁数据展示系统的推广和应用提供了有力支持。   一、核心功能模块   数据采集与预处理   智能分析处理   集成频谱分析、时频变换等信号处理算法,自动提取时域频域特征;
    华盛恒辉l58ll334744 2025-05-13 10:20 386浏览
  •   电磁数据管理系统深度解析   北京华盛恒辉电磁数据管理系统作为专业的数据处理平台,旨在提升电磁数据的处理效率、安全性与可靠性。以下从功能架构、核心特性、应用场景及技术实现展开分析:   应用案例   目前,已有多个电磁数据管理系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁数据管理系统。这些成功案例为电磁数据管理系统的推广和应用提供了有力支持。   一、核心功能模块   数据采集与接入:实时接收天线、频谱仪等设备数据,兼容多协议接口,确保数据采集的全面性与实时性
    华盛恒辉l58ll334744 2025-05-13 10:59 300浏览
  • 在全球能源结构转型加速推进与政策驱动的双重作用下,油气输送、智慧水务及化学化工等流体计量场景正面临效率革命与智能化升级的迫切需求。传统机械式流量计虽在工业初期有效支撑了基础计量需求,但其机械磨损、精度衰减与运维困难等固有缺陷已难以适应现代工业对精准化、智能化与可持续发展的多维诉求。在此背景下,超声波流量计则凭借着高精度探测、可实时监测、无侵入式安装、无阻流部件、易于维护与绿色环保等优势实现了突破性发展,成为当代高精度流体计量体系中不可或缺的重要一环。该技术不仅是撬动能源利用效率提升、支撑智慧管网
    华普微HOPERF 2025-05-14 11:49 54浏览
  •   军事仿真推演系统平台核心解析   北京华盛恒辉军事仿真推演系统平台以计算机仿真技术为基石,在功能、架构、应用及效能上展现显著优势,成为提升军事作战与决策能力的核心工具。   应用案例   目前,已有多个仿真推演系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润仿真推演系统。这些成功案例为仿真推演系统的推广和应用提供了有力支持。   一、全流程功能体系   精准推演控制:覆盖推演启动至结束全流程。   智能想定管理:集成作战信息配置、兵力部署功能。   数据模型整合
    华盛恒辉l58ll334744 2025-05-14 17:11 79浏览
  • 感谢面包板论坛组织的本次测评活动,本次测评的对象是STM32WL Nucleo-64板 (NUCLEO-WL55JC) ,该测试板专为LoRa™应用原型构建,基于STM32WL系列sub-GHz无线微控制器。其性能、功耗及特性组合经过精心挑选,支持通过Arduino® Uno V3连接,并利用ST morpho接头扩展STM32WL Nucleo功能,便于访问多种专用屏蔽。STM32WL Nucleo-64板集成STLINK-V3E调试器与编程器,无需额外探测器。该板配备全面的STM
    无言的朝圣 2025-05-13 09:47 199浏览
  • 在全球供应链紧张和国产替代需求推动下,国产存储芯片产业快速发展,形成设计到封测一体化的完整生态。北京君正、兆易创新、紫光国芯、东芯股份、普冉股份和佰维存储等六大上市公司在NOR/NAND Flash、DRAM、嵌入式存储等领域布局各具特色,推动国产替代提速。贞光科技代理的品牌紫光国芯,专注DRAM技术,覆盖嵌入式存储与模组解决方案,为多领域客户提供高可靠性产品。随着AI、5G等新兴应用兴起,国产存储厂商有望迎来新一轮增长。存储芯片分类与应用易失性与非易失性存储芯片易失性存储芯片(Volatile
    贞光科技 2025-05-12 16:05 242浏览
  • 在当下竞争激烈的 AI 赛道,企业高层的变动往往牵一发而动全身,零一万物近来就深陷这样的动荡漩涡。近日,零一万物联合创始人、技术副总裁戴宗宏离职创业的消息不胫而走。这位在大模型基础设施领域造诣颇深的专家,此前在华为云、阿里达摩院积累了深厚经验,在零一万物时更是带领团队短期内完成了千卡 GPU 集群等关键设施搭建,其离去无疑是重大损失。而这并非个例,自 2024 年下半年以来,李先刚、黄文灏、潘欣、曹大鹏等一众联创和早期核心成员纷纷出走。
    用户1742991715177 2025-05-13 21:24 146浏览
  • 一、量子自旋态光学操控1、‌拓扑量子态探测‌磁光克尔效应通过检测拓扑磁结构(如磁斯格明子)的磁光响应,实现对量子材料中非平庸拓扑自旋序的非侵入式表征。例如,二维量子磁体中的“拓扑克尔效应”可通过偏振光旋转角变化揭示斯格明子阵列的动态演化,为拓扑量子比特的稳定性评估提供关键手段。2、‌量子态调控界面‌非厄米磁光耦合系统(如法布里-珀罗腔)通过耗散调控增强克尔灵敏度,可用于奇异点附近的量子自旋态高精度操控,为超导量子比特与光子系统的耦合提供新思路。二、光子量子计算架构优化1、‌光子内存计算器件‌基于
    锦正茂科技 2025-05-13 09:57 57浏览
  •   舰艇电磁兼容分析与整改系统平台解析   北京华盛恒辉舰艇电磁兼容分析与整改系统平台是保障海军装备作战效能的关键技术,旨在确保舰艇电子设备在复杂电磁环境中协同运行。本文从架构、技术、流程、价值及趋势五个维度展开解析。   应用案例   目前,已有多个舰艇电磁兼容分析与整改系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润舰艇电磁兼容分析与整改系统。这些成功案例为舰艇电磁兼容分析与整改系统的推广和应用提供了有力支持。   一、系统架构:模块化智能体系   电磁环境建模:基
    华盛恒辉l58ll334744 2025-05-14 11:22 90浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦