当前位置: 首页 > news >正文

FPGA-学会使用vivado中的存储器资源ROM(IP核)

问题:

某芯片,有500个寄存器,需要在上电的时候由FPGA向这些寄存器中写入初始值,初始值已经通过相应的文档给出了具体值,这些值都是已知的。

分析关键点:

数据量比较多(Verilog代码,通过case语句、always语句这种查找表的方式,数据量比较大,很不方便)

数值都是已知的 (数据内容固定)

整个过程只需要工作一次

ROM : 只读存储器-----read only memory 

非易失性,断电后数据不会丢失。嵌入电脑主板或者做移动存储介质就很合适,体积够小,提供的容量可以比光盘和软盘的大,速度也不慢。

接下来 我们在Vivado中如何实现ROM IP核。

创建工程,进入Vivado界面

两者最主要的差别是生成的IP核所占用的FPGA资源不一样,

从Distributed Memory Generator 生成的ROM/RAM Core占用的资源是LUT (查找表,查找表本质就是一个小的RAM);

从Block Memory Generator生成的ROM/RAMCore 占用的资源是 Block Memory (嵌入式的硬件RAM) ,

根据需求选择Block Memory Generator

然后编写ROM测试文件

代码如下

`timescale 1ns / 1ps
module rom_tb;reg clka;reg [9:0]addra;wire [9:0]douta;rom rom(.clka(clka),.addra(addra),.douta(douta));initial clka = 10;always #10 clka = ~clka;initial beginaddra = 100;#201;repeat(3000) beginaddra = addra + 1'd1;#20;end#2000$stop;endendmodule

仿真波形

然后把波形调为模拟输出

观察输出波形(正弦波)

http://www.lryc.cn/news/308886.html

相关文章:

  • 自测-1 打印沙漏
  • 高级语言期末2009级B卷(计算机学院)
  • c# using 用法
  • 【Django】执行查询—跨关系查询中的跨多值关联问题
  • Spring八股 常见面试题
  • 今年面试潮,说实话这个开发岗能不能冲?
  • 【前端素材】推荐优质在线花卉商城电商网页Flowery平台模板(附源码)
  • ★【递归】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树
  • linux检测和重启python脚本
  • HTML+CSS+JS:花瓣登录组件
  • Unity中URP下实现水体(水面反射)
  • 基于FastJson实现Json数据文件导入导出解析
  • JVM内存分配与垃圾收集流程
  • 【python】yaml转成json
  • css5定位
  • 【解决】修改 UI界面渲染层级 的常见误区
  • 蓝桥杯练习系统(算法训练)ALGO-995 24点
  • 汽车电子笔记:BootLoader升级过程疑难问题解决方式(Bootloader响应10 02 + 刷死拯救机制)
  • 高级RAG:揭秘PDF解析
  • Android之UI Automator框架源码分析(第九篇:UiDevice获取UiAutomation对象的过程分析)
  • 【C语言】指针初阶2.0版本
  • 小红书关键词爬虫
  • 网络爬虫的危害,如何有效的防止非法利用
  • 2024/2/29 备战蓝桥杯 6-1 二分
  • 浅析ARMv8体系结构:原子操作
  • 综合练习(二)
  • sql-labs第46关(order by盲注脚本)
  • 13款可以轻松上手画图软件推荐
  • vue实现商品评分效果(通过插件实现)
  • SpringBoot 手写 Starter