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

问题

信号源(例如ADC)以1us一个的速率产生12位的数据现要求获得连续1ms内的数据,通过串口以115200的波特率发到电脑。

分析

· 数据量是1000个

· 数据速率不匹配

· 数据内容未知

· 数据总数据量有限

· 数据的使用速度低于数据的产生速度

· 数据生产和消耗的位宽

· 数据量相对较大,数据要求能够重复使用,而且要求能够被更改

RAM:随机存储器(随机获取的存储器,可读可写的存储器)--random access memory

它可以随时把数据写入到任何一指定地址的存储单元。也可以随时从任一指定地址读出数据,其读写速度有时钟频率决定,主要用来存放程序以及程序执行过程中产生的数据,运算结果等

rom的预先存储  ram的实时写入

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

创建工程,进入Vivado界面

创建RAM IP 核

设置端口A(port A)

设置端口B(port B)

然后编写RAM测试文件

代码如下

`timescale 1ns / 1ps
module ram_test_tb;reg clka;reg ena;reg wea;reg [15:0]addra;reg [15:0]dina;reg clkb;reg enb;reg [15:0]addrb;wire [15:0]doutb;ram ram (.clka(clka),    // input wire clka.ena(ena),      // input wire ena.wea(wea),      // input wire [0 : 0] wea.addra(addra),  // input wire [15 : 0] addra.dina(dina),    // input wire [15 : 0] dina.clkb(clkb),    // input wire clkb.enb(enb),      // input wire enb.addrb(addrb),  // input wire [15 : 0] addrb.doutb(doutb)  // output wire [15 : 0] doutb);initial clka = 1; always #10 clka = ~clka;initial clkb = 1; always #15 clkb = ~clkb;initial beginena = 0;wea = 0;addra = 0;dina = 0;addrb = 0;enb = 0;//写入写满#201;repeat(65536) beginena = 1;wea = 1;#20;addra = addra + 1;dina = dina + 1;end ena = 0;wea = 0;#20000;//读出;addrb = 65535;#300;repeat(65536)beginenb = 1;#30;addrb = addrb - 1;end#2000;$stop;endendmodule

仿真波形

写入数据时波形

读出数据时波形(读使能到数据输出2个时钟周期)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/498594.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019年上半年教师资格证考试《教育知识与能力》(中学)题

2.苏联教育家赞可夫倡导的是(C )。 A发现学习理论 B教学过程最优化理论 C教学与发展理论 D范例教学理论 9.我国《基础教育课程改革纲要(试行)》规定,在课程设置上,高中阶段(B )。…

掼蛋剩牌怎么打?

掼蛋是起源于江苏淮安的一种扑克牌游戏,具有很强的娱乐性、参与性,能提高人的记忆力和判断力以及团队协作意识。掼蛋打到最后几张的时候,也不能掉以轻心,这种时候才是最考验技术的时候,那么剩牌怎么打,有以…

ywtool network命令

一.network功能介绍 network功能就是通过脚本的方式配置IP信息,分为4项: (1) 配置单网卡(2)配置br网桥(单网卡)(3)配置bond(两张网卡)(4)配置ovs网桥(单网卡) 日志文件:/var/log/ywtools/ywtools-network.log/usr/local/ywtools/config/config.ini中network参数:…

ArcgisForJS如何使用ArcGIS Server的缓冲区几何服务?

文章目录 0.引言1.使用geometryService生成缓冲区2.使用geometryEngine生成缓冲区 0.引言 ArcGIS For JS是一款强大的JavaScript库,它提供了许多功能,包括使用ArcGIS Server的缓冲区几何服务。缓冲区几何服务是一种服务,它允许你在地理空间数…

LeetCode # 206. 反转链表

206. 反转链表 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例…

Intel SGX 概述 --潦草笔记

文章目录 前言一、SGX介绍1.1 指令介绍1.2 数据结构 二、内存保护过程2.1 enclave页面缓存(EPC)2.2 Enclave页面缓存映射(EPCM) 三、部署SGX参考资料 前言 SGX是Intel开发的新的处理器技术,可以在计算平台上提供一个可…

Docker本地部署GPT聊天机器人并实现公网远程访问

文章目录 前言1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址9. 结语 前言 随着ChatGPT 和open Sora 的热度剧增,大语言模型时代,开启了AI新篇章,大语言模型的应用非常广泛&…

本地数据库Room——study_1

目录 1.概念 2.组成 3.导入依赖 4.具体实现 4.1 数据表的设置 4.2 方法接口 4.3 数据库类 -》 基石,使用模板 4.4 实现真正的实例Room库 1.概念 Room 持久性库在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时&#xff0c…

12v-36V转5v1A车载空气净化器芯片供电方案-AH8332G

12V-36V转5V 1A车载空气净化器芯片供电方案 随着车载空气净化器的普及,如何为其提供稳定、高效的电源已成为一个重要问题。本文将介绍一种适用于车载空气净化器的供电方案,该方案可将输入电压范围为12V-36V的电源转换为输出为5V,峰值电流为1…

网站数据加密之Hook通用方案

文章目录 1. 写在前面2. 请求分析3. 编写Hook4. 其他案例 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋…

dolphinscheduler伪集群部署教程

文章目录 前言一、配置免密登录1. 配置root用户免密登录2. 创建用户2.1 创建dolphinscheduler用户2.2 配置dolphinscheduler用户免密登录2.3 退出dolphinscheduler用户 二、安装准备1. 安装条件2. 安装jdk3. 安装MySQL4. 安装zookeeper4.1 zookeeper单机部署4.1.1 zookeeper3.1…

echarts鼠标向右/向左绘制实现放大/还原

echarts toolbox 的datazoom提供了绘制放大的功能,但通过鼠标绘制只能进行放大 应需求放大与还原都通过鼠标行为实现,增加从右往左绘制时还原放大结果 demo 结果 重写datazoom的原型方法实现绘制事件的拦截 const comp myChart._model.getComponent(to…