实验现象:

将一组固定的数据(三角波、正弦波)存储在IP核构建的rom中。系统工作时,从rom中按照地址顺序读取数据,有modelsim仿真工具观察波形。

第一步:

第二步:配置ip核rom

主要设置数据位宽和地址深度。

第三步:

rom默认必须要有一个初始化.mif文件(而ram不必要),需要在一开始就先新建一个.mif文件。

第四步:

生成IP核后,记着把.qip文件设置成Top顶层文件。

testbench测试文件编写:

`timescale 1ns/1ns
`define clock_period 20
module rom_tb;reg   [7:0]  address;reg         clock;wire [7:0]  q;integer i;rom rom(.address(address),.clock(clock),.q(q));initial clock=1;always #(`clock_period/2) clock=~clock;initial beginaddress=0;#(`clock_period*20+1);for(i=0;i<=255;i=i+1) begin#(`clock_period);address=address+1;end#(`clock_period*20);$stop;end
endmodule

这里三角波是数据宽度=8位0~255,地址深度=256,从0~128~1一共256个数字;

正弦波是数据宽度=10位0~1023,地址宽度=2048,从512~1023~0~510一共2048个数字;

所以在编辑rom IP核时需要注意位宽和深度,在tesbench中的激励定义和for循环中也要做相应的修改。

波形图分析:

图1和图二都是三角波

图三是正弦波

图四是对上面的三角波和正弦波合在一个mif文件中,修改rom位宽和深度读取到的数据波形

如何在已有的IP核基础上进行编辑:

FPGA学习-rom只读存储器(嵌入式块应用)相关推荐

  1. FPGA芯片结构(可编程输入输出单元IOB/可配置逻辑块CLB/数字时钟管理模块DCM/ 嵌入式块RAM(BRAM)/丰富的布线资源/ 底层内嵌功能单元/内嵌专用硬核)

    目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM.时钟管理 和DSP)的硬核(ASIC型)模块.如图1-1所示(注:图1-1只是一个示意图,实际上 ...

  2. 处理器指令编码可重定义的方法_RISC-V学习笔记1 《基于FPGA与RISC-V的嵌入式系统设计》第3章 RISC-V指令集...

    今天读了顾长怡的<基于FPGA与RISC-V的嵌入式系统设计>第3章 RISC-V指令集,做了一些简单的笔记. 1.这本书既然要基于RISC-V讲嵌入式系统设计,就必须要介绍RISC-V的 ...

  3. 小梅哥FPGA:嵌入式块RAM使用之FIFO

    小梅哥FPGA:嵌入式块RAM使用之FIFO 课程目标:学会调用QuartusⅡ软件中提供的FIFO核并通过仿真,了解其接口时序 实现现象:通过QuartusⅡ软件中调用FIFO核,通过仿真来验证其接 ...

  4. FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计)

    FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计) 首先我们知道FPGA可以实现充当完整微处理器的逻辑,并且提供许多灵活性选项.下图体现出FPGA器件为何是现场可编辑门阵列器件. 为了使基于F ...

  5. FPGA入门嵌入式 块RAM双口RAM使用

    嵌入式 块RAM双口RAM使用 对RAM(随机存储器)进行读和写操作. 使用tool工具生成IP核RAM,8位读地址8位写地址. IP核仿真 `timescale 1ns/1ns `define cl ...

  6. FPGA学习笔面试记录(二)——FPGA基础

    这里我罗列了一个学习思维导图,笔面试过程中遇到的问题,大都涵盖在内,可以参考.基础知识记录如下: 目录 FPGA部分 1.典型FPGA的开发流程 2.FPGA内部资源包括哪些及作用? 3.查找表LUT ...

  7. FPGA学习前导:FPGA/CPLD简介

    可编程逻辑器件(Programmable Logic Device,PLD)起源于20世纪70年代,是在专用集成电路(ASIC)的基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要硬件平台,其 ...

  8. 小梅哥FPGA学习笔记

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

  9. ZYNQ之FPGA学习----RAM IP核使用实验

    1 RAM IP核介绍 RAM 的英文全称是 Random Access Memory, 即随机存取存储器, 它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据,其读写速度 ...

最新文章

  1. 传清华应届生获Facebook offer
  2. 华为手机截屏怎么截长图_华为手机竟然有6种截屏方法,你用过几种?3种以上的手机没白买...
  3. MapReduce进阶:多MapReduce的链式模式
  4. Python实现字符串反转的几种方法
  5. 上海大学计算机组成原理12,上海大学计算机组成原理报告1.doc
  6. 有关JAVA考试中数据库的题,javaee期末考试题库,用javaEE编写一个题库系统,要怎么做...
  7. git 的 merge 默认有commit操作
  8. PHP课程第一次实验作业提交
  9. 第一章练习题三级菜单
  10. 【Java 多线程】多线程带来的的风险-线程安全、多线程五个经典案例
  11. Swagger工作笔记001---Swagger2的使用
  12. 超过130个你需要了解的vim命令
  13. ajaxSubmit 提交form 表单
  14. wps下一步快捷键_WPS常用快捷键大全(附下载)
  15. HTML 教程-菜鸟教程
  16. java中依赖_java中依赖、关联、聚合
  17. webrtc QOS方法四.2(拥塞算法学习)
  18. 我的世界回连Center
  19. pdf生成目录-如何给没有目录的pdf手动添加目录
  20. Hive sql : 查询连续登录天数

热门文章

  1. dsb调制与解调的matlab,DSB调制与解调的MATLAB实现及.pptx
  2. php最大的论坛,phpwind论坛史上最大漏洞 -电脑资料
  3. 一键在Web端把CAD图自动分割成多张图纸并导出子图或图片
  4. 联想蓝牙没有连接的地方计算机,联想笔记本连不上蓝牙怎么办 笔记本连接蓝牙耳机没声音解决方法...
  5. AR--基本原理实现科普
  6. 0xc0000225无法进系统_U盘装win10后无法进系统错误代码0xc0000225怎么修复
  7. deepstream-测试发送kafka
  8. NVIDIA GPGPU vs AMD Radeon HD Graphics执行模式对比
  9. c#堆栈跟踪;c#异常原因查找打印;c#打印错误日志
  10. sea新浪云计算机平台,新浪云计算SAE免费申请使用及域名绑定