FPGA学习笔记_ROM核调用与调试
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工具抓取到的波形数据
- 知识点:
- ROM存储器IP核的使用
创建.mif文件 - In system memory content editor内存查看工具的使用
- 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核调用与调试相关推荐
- FPGA学习笔记(十二)IP核之FIFO的学习总结
系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...
- 小梅哥FPGA学习笔记
小梅哥FPGA学习笔记 一.38译码器 功能: 译码器其任一时刻的稳态输出,仅仅与该时刻的输入变量的取值有关,它是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等).38 ...
- Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础
Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...
- FPGA学习笔记(七): DSB调制解调的仿真
笔记七是DSB调制解调的仿真实现. DSB调制解调的实现原理:首先使用DDS产生低频正弦波信号作为调制信号,再用DDS产生高频信号作为载波信号,然后使用乘法器将两者相乘产生DSB信号,DSB信号与载波 ...
- FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇尾
FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇一 FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇二 ...
- FPGA学习笔记_UART串口协议_串口接收端设计
FPGA学习笔记 1. UART串口协议以及串口接收端设计 1 原理图 2 Verilog 代码 3 Modelsim仿真 4. FPGA板级验证 1.1 串口协议接收端设计 目标:FPGA接收其他设 ...
- FPGA学习笔记(五)Testbench(测试平台)文件编写进行Modelsim仿真
系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...
- FPGA学习笔记(八):ASK调制解调的仿真
笔记八是ASK调制解调的仿真实现. ASK调制解调的实现原理:首先使用MATLAB产生存储基带波形的coe文件,再让ROM读取coe文件输出基带波形,然后DDS产生正弦波信号作为载波信号,接下来使用乘 ...
- FPGA学习笔记_Quartus II_In system sources and probes editor(ISSP)调试工具的使用
FPGA学习笔记 Quartus II prime Standard Edition-In system sources and probes editor(ISSP)调试工具的使用 Quartus ...
最新文章
- 我希望支持JavaScript GraphQL实现的API
- 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)
- oracle触发器的测试,ORACLE触发器的测试
- 儿童节礼包!10 后都开始学编程了,你需要这个阿里技术电子书大全
- sudo with no password
- ABP+AdminLTE+Bootstrap Table权限管理系统第八节--ABP错误机制及AbpSession相关
- 思考、学习新技术的原则和方式
- HTML(八)------ 布局
- 公式编辑器里面添加空格
- python flask倒计时_Flask实践:计时器
- opmanager邮件告警配置
- 神舟计算机主板bios,神舟HASEE笔记本电脑开机进入BIOS的方法与bios设置图解
- 【C语言】指针的算术运算
- comsol3.5 软件下载
- W54 - 999、TensorFlow框架识别图片
- Java - constants
- 005_Sketch 工具使用手册
- SSH框架报 org.hibernate.impl.QueryImpl cannot be cast to com.gao.ruan.pojos.Category
- CVTE(视源股份)前端实习生面经
- 大学生求职简历如何制作?
热门文章
- angularjs-requirejs-rjs-md5
- win7防火墙怎么关_电脑防火墙怎么关?这两招你得会
- 直通车roi提升优化方法 如何判断直通车权重高低
- 带你玩转Spring Cloud Tencent(一)概述
- WGCNA如何从module中挖掘关键基因
- iOS StoreKit 2 新特性解析
- 2017cad光标大小怎么调_AutoCAD 2010如何调整光标的大小?调整光标大小的方法
- 笔记本 服务器 性能,笔记本CPU性能天梯图2021最新6月
- 基于Photoshop CC2018讲解PS最新入门到精通
- 使用微信web开发者工具调试微信企业号页面