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

news2025/2/28 11:10:04

问题

信号源(例如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 begin
       ena = 0;
       wea = 0;
       addra = 0;
       dina = 0;
       addrb = 0;
       enb = 0;
       //写入写满
       #201;
       repeat(65536) begin
        ena = 1;
        wea = 1;
        #20;
        addra = addra + 1;
        dina = dina + 1;
       end 
       ena = 0;
       wea = 0;
       #20000;
       //读出;
       addrb = 65535;
       #300;
       repeat(65536)begin
        enb = 1;
        #30;
        addrb = addrb - 1;
       end
       #2000;
       $stop;
    end
    
endmodule

仿真波形

写入数据时波形

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring基础——Spring简介

目录 Spring简述Spring起源Spring技术核心1. Spring IoC2. Spring AOP3. Spring Framework4. Spring Boot Spring涉及领域 Spring简述 如果想快速上手spring开发的话这边先给出spring的官方文档 官方教程:spring.io guides 中文教程(官方镜像&#xff09…

代码随想录算法训练营day29

题目:491_非递减子序列(看了题解) 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7]…

uniAPP书写,外卖生鲜小程序,源码交付,支持二开!多级分销,创痛无阻!

做餐饮微信分销系统的好处? 分销可以为商家迅速构建一个微信商城,商家通过分销能够快速打开自己的销售渠道,建立一个自己的网上商城系统,帮助商家去更好地进行商品的售卖。通过分销能够快速完成店铺的装修,完成商品的上…

Mysql的储存引擎

储存引擎介绍 1. 文件系统 操作系统存取数据的一种机制 2. 文件系统类型 不管使用什么文件系统,数据内容不会变化 不同的是,存储空间、大小、速度 3. MySQL存储引擎 可以理解为,MySQL的“文件系统”,只不过功能更加强大 4. MySQL…

SMTP地址如何获得?SMTP服务器地址是什么?

SMTP服务器地址怎么看?获取SMTP服务器地址的方法? 当我们需要发送邮件时,SMTP地址则成为了连接邮件服务器的重要桥梁。那么,SMTP地址究竟是什么呢?我们又该如何获得它呢?接下来,让蜂邮EDM来探讨…

三维基因组|基因组结构 (2)

本系列将更新三维基因组相关内容,欢迎关注! 二维顺式元件 术语 cis 源自拉丁语词根“cis”,意思是“同一侧”。相比之下,“trans”一词来自拉丁语词根“trans”,意思是“对面”。在分子生物学中,顺式调控元…

从全国首款到全球首款,康华生物凭“创新+出海”领跑国产疫苗赛道

2024年,是国内首个上市销售的人二倍体细胞狂犬病疫苗上市销售的第十周年,也是成都本土企业康华生物成立的第二十个周年。 值此20周年之际,康华生物于2月27日在成都举办“疫苗创新与疾病预防”论坛,遍邀来自研发界、疾控界等各类专…

SINAMICS V90 指导手册 第3章 驱动和电机安装

驱动安装 安装方向和间距 方向: SINAMICS V90 200V系列中,400W和700W型号的驱动器可同时支持垂直以及水平安装,其他型号的驱动仅支持垂直安装。 间距: 安装间距 注意:当满足下列任一条件时,驱动应降额至…

安卓使用okhttpfinal下载文件,附带线程池下载使用

1.导入okhttp包 implementation cn.finalteam:okhttpfinal:2.0.7 2.单个下载 package com.example.downloading;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.util.Log; import android.view.View;import java.io.File;import c…

前端配置开发环境,新电脑配置前端开发环境,Vue开发环境配置的详细过程(前端开发环境配置,电脑重置后配置前端开发环境)

简介:有时候,我们需要在新电脑 或者 电脑重置后,配置前端开发环境,具体都需要安装什么软件和插件,这里来记录一下(文章适合新手和小白,大佬可以带过)。 ✨前端开发环境,需…

向量数据库PGVECTOR,AI浪潮下崛起的新秀!

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

mybatis的原理和注解开发,今年Java面试必问的这些技术面

前言 说起MySQL优化的话,想必大部分人都不陌生了。在我们的记忆储备里也早已记住了这些关键词:避免使用SELECT*、避免使用NULL值的判断、根据需求适当的建立索引、优化MySQL参数…但是你对于这些优化技巧是否真正的掌握了及其相应的工作原理是否吃透了呢…

RabbitMQ-消息队列:Federation Exchange、Federation Queue、Shovel

25、Federation Exchange 1、使用它的原因 ​ (broker 北京),(broker 深圳)彼此之间相距甚远,网络延迟是一个不得不面对的问题。有一个在北京 的业务(Client 北京) 需要连接(broker 北京),向其中的交换器 exchangeA 发送消息,此…

思科湾区开启新一轮裁员,730职位受到影响 | 百能云芯

近日,科技巨头思科(Cisco)宣布将进行一轮裁员,作为其裁员计划的一部分,湾区将有大约730个工作岗位受到影响。 根据提交给州和地方官员的监管文件,受影响的工作岗位主要分布在湾区不同地点,其中圣…

QT多语言切换功能

一.目的 在做项目时,有时希望我们的程序可以在不同的国家使用,这样最好的方式是一套程序能适应于多国语言。 Qt提供了这样的功能,使得一套程序可以呈现出不同的语言界面。本文将介绍QT如何实现多语言,以中文和英文为例。 QT开发…

YOLOv8改进涨点,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)

目录 摘要 主要想法 GSConv GSConv代码实现 slim-neck slim-neck代码实现 yaml文件 完整代码分享 总结 摘要 目标检测是计算机视觉中重要的下游任务。对于车载边缘计算平台来说,巨大的模型很难达到实时检测的要求。而且,由大量深度可分离卷积层构…

Leetcode121. 买卖股票的最佳时机 -代码随想录

题目&#xff1a; 代码(首刷自解 2024年2月29日&#xff09;&#xff1a; 一个easy题做那么久&#xff0c;自我检讨一下 class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();if (n 1) return 0;vector<int> dp(n 1, 0);int…

Redis 在 Linux 系统下安装部署的两种方式详细说明

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 Redis安装和配置 1、首先在官网下载好redis-6.0.9.tar.gzhttp://redis.io/ 或者使用 wget 命令下载&#xff1a;wget http://download.redis.io/releases/redis-6.0.9.tar.gz 2、下载使用上传到阿里…

《Spring Security 简易速速上手小册》第1章 Spring Security 概述(2024 最新版)

文章目录 1.1 Spring Security 的重要性1.1.1 基础知识详解1.1.2 主要案例&#xff1a;用户认证与授权1.1.3 拓展案例 1&#xff1a;OAuth2 社交登录1.1.4 拓展案例 2&#xff1a;JWT 认证 1.2 Spring Security 的核心特性1.2.1 基础知识详解1.2.2 主要案例&#xff1a;基于角色…

疑似某免杀测试样本被国外安全团队捕获

今天笔者发现国外MalwareHunterTeam捕获到一例特殊的样本&#xff0c;如下所示&#xff1a; 服务器的IP地址为:117.50.106.161&#xff0c;同时样本的PDB信息&#xff0c;如下所示&#xff1a; 样本的PDB信息&#xff1a;C:\Users\Xiaowu\source\repos\bypass-1\Release\bypass…