FPGA学习笔记

ROM核调用与调试

1. ROM存储器IP核的使用
2. 创建.mif文件
3. In system memory content editor内存查看工具的使用
4. Signal tapII工具使用
5. Verilog 代码
6. Modelsim仿真
7. FPGA板级验证

ROM核调用与调试

  • 目标:调用Quartus软件中提供的ROM核并进行系统设计
  • 现象:将一组数据(三角波形表)存储在FPGA中的使用IP核构建的片上rom中,开发板上电后,系统开始开始从rom中读取数据,并将数据直接通过并口输出。通过signal tap II软件实时抓取并口的数据,显示(三角波形)。然后使用quartus软件中提供的in system memory content editor工具在线更改rom中的数据(正弦波形),然后再次观察signal tapII工具抓取到的波形数据
  • 知识点:
  1. ROM存储器IP核的使用
    创建.mif文件
  2. In system memory content editor内存查看工具的使用
  3. Signal tapII工具使用
    嵌入式逻辑分析仪/片上逻辑分析仪,能够直接抓取芯片节点数据或者外部IO口数据,通过JTAG口与PC机相连。PC机上的quaturs软件中提供了signal tap II 软件,通过JTAG线与片上逻辑分析仪通信,将片上逻辑分析仪抓取到的设计中的节点信息,实时发送给PC机,PC机通过singal Tap II软件显示数据。

1. ROM存储器IP核的使用

  • (1). IP Catalog, 搜索ROM,双击ROM:1-port,根据需求设置数据位宽,rom内存等信息,点击next

  • (2). 根据需求选择寄存端口,点击next

  • (3). 选择.mif文件,点击next

  • (4). 点击next

  • (5). 点击finish

  • (6). 生成.qip文件,右键点击,设置set as top level entity, 分析和综合

  • (7). 编写testbench,仿真验证功能

2. 创建.mif文件

  • (1). 创建新的文件,选择memory initialization file, 点击OK

  • (2). 设置位宽和内存深度,点击OK,生成如下文件


  • (3). 根据需求更改内存值后,点击file,save as,设置好名称,将.mif文件保存在工程文件夹内,.mif文件设置完成



3. in system memory content editor内存查看工具的使用

  • (1). tool–>in system memory content editor

  • (2). 显示如下界面,点击读取,读取rom内的数据

  • (3). 右键点击rom,选择import data from file

  • (4). 选择实现编辑好的.mif文件,点击open

  • (5). 点击写入,则文件内的数据将被写入rom中

  • (6). 写入后的数据在signal tapII内显示


4. signal tapII工具使用

  • (1). 新建文件,点击signal tap logic analyzer file

  • (2). 按顺序添加clk信号

  • (3).按顺序 添加待观测信号

  • (4). 设置完成后,点击file,设置名称和路径后,保存

  • (5). 根据设计,设置存储区深度,生成.stp文件

  • 逻辑分析仪保证采样时钟比待采样信号速率高
  • Sample depth:
    存储器深度,抓取的数据,相当于内部开了一个存储器,连续的抓取需要观测数据,由于速度非常快,所以要先将待观测的数据全部存储在存储器中,再从存储器中通过JTAG线,发送到电脑上,实时显示;否则由于JTAG本身速度不是特别高,无法传输50MHz的直接采样的数据,使用这种存储的方式来降速

  • (6). 按下面顺序运行逻辑分析仪

  • (7). 连续实时检测数据

  • (8). 将实时数据格式设置为线形图显示,形状如下



5. Verilog 代码

//----top---------------------------------------
module rom_top(input clk,input rst_n,output [7:0] q
);reg [7:0] addr;rom uut(.address(addr),.clock(clk),.q(q));always@(posedge clk or negedge rst_n)if(!rst_n)addr <= 8'd0;elseaddr <= addr + 8'd1;
endmodule//----testbench------------------------------
`timescale 1ns/1ns
`define clock_period 20module tb_rom;reg clk;reg [7:0] addr;wire [7:0] q;rom uut(.address(addr),.clock(clk),.q(q));integer i;initial clk = 1;always #(`clock_period/2) clk = ~clk;initial beginaddr =8'd0;for(i=0;i<2550; i=i+1)begin#(`clock_period);addr = addr + 8'd1;end#(`clock_period*50);$stop;end
endmodule

6. Modelsim仿真

  • 仿真波形调试
    右键点击信号,选择format–>analog(automatixc),将信号值转换为模拟值

  • 三角波形

  • 正弦波形

4. FPGA板级验证

  • 波形由三角形转换为正弦形


【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


FPGA学习笔记_ROM核调用与调试相关推荐

  1. FPGA学习笔记(十二)IP核之FIFO的学习总结

    系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...

  2. 小梅哥FPGA学习笔记

    小梅哥FPGA学习笔记 一.38译码器 功能: 译码器其任一时刻的稳态输出,仅仅与该时刻的输入变量的取值有关,它是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等).38 ...

  3. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  4. FPGA学习笔记(七): DSB调制解调的仿真

    笔记七是DSB调制解调的仿真实现. DSB调制解调的实现原理:首先使用DDS产生低频正弦波信号作为调制信号,再用DDS产生高频信号作为载波信号,然后使用乘法器将两者相乘产生DSB信号,DSB信号与载波 ...

  5. FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇尾

    FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇一 FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇二 ...

  6. FPGA学习笔记_UART串口协议_串口接收端设计

    FPGA学习笔记 1. UART串口协议以及串口接收端设计 1 原理图 2 Verilog 代码 3 Modelsim仿真 4. FPGA板级验证 1.1 串口协议接收端设计 目标:FPGA接收其他设 ...

  7. FPGA学习笔记(五)Testbench(测试平台)文件编写进行Modelsim仿真

    系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...

  8. FPGA学习笔记(八):ASK调制解调的仿真

    笔记八是ASK调制解调的仿真实现. ASK调制解调的实现原理:首先使用MATLAB产生存储基带波形的coe文件,再让ROM读取coe文件输出基带波形,然后DDS产生正弦波信号作为载波信号,接下来使用乘 ...

  9. FPGA学习笔记_Quartus II_In system sources and probes editor(ISSP)调试工具的使用

    FPGA学习笔记 Quartus II prime Standard Edition-In system sources and probes editor(ISSP)调试工具的使用 Quartus ...

最新文章

  1. 我希望支持JavaScript GraphQL实现的API
  2. 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)
  3. oracle触发器的测试,ORACLE触发器的测试
  4. 儿童节礼包!10 后都开始学编程了,你需要这个阿里技术电子书大全
  5. sudo with no password
  6. ABP+AdminLTE+Bootstrap Table权限管理系统第八节--ABP错误机制及AbpSession相关
  7. 思考、学习新技术的原则和方式
  8. HTML(八)------ 布局
  9. 公式编辑器里面添加空格
  10. python flask倒计时_Flask实践:计时器
  11. opmanager邮件告警配置
  12. 神舟计算机主板bios,神舟HASEE笔记本电脑开机进入BIOS的方法与bios设置图解
  13. 【C语言】指针的算术运算
  14. comsol3.5 软件下载
  15. W54 - 999、TensorFlow框架识别图片
  16. Java - constants
  17. 005_Sketch 工具使用手册
  18. SSH框架报 org.hibernate.impl.QueryImpl cannot be cast to com.gao.ruan.pojos.Category
  19. CVTE(视源股份)前端实习生面经
  20. 大学生求职简历如何制作?

热门文章

  1. angularjs-requirejs-rjs-md5
  2. win7防火墙怎么关_电脑防火墙怎么关?这两招你得会
  3. 直通车roi提升优化方法 如何判断直通车权重高低
  4. 带你玩转Spring Cloud Tencent(一)概述
  5. WGCNA如何从module中挖掘关键基因
  6. iOS StoreKit 2 新特性解析
  7. 2017cad光标大小怎么调_AutoCAD 2010如何调整光标的大小?调整光标大小的方法
  8. 笔记本 服务器 性能,笔记本CPU性能天梯图2021最新6月
  9. 基于Photoshop CC2018讲解PS最新入门到精通
  10. 使用微信web开发者工具调试微信企业号页面