FPGA_学习_17_IP核_ROM(无延迟-立即输出)

这篇具有很好参考价值的文章主要介绍了FPGA_学习_17_IP核_ROM(无延迟-立即输出)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于项目中关于厂商提供的温度-偏压曲线数据已经被同事放在ROM表了,我这边可用直接调用。 今天在仿真的时候,发现他的ROM表用的IP核是及时输出的,就是你地址给进去,对应地址的ROM数据就立马输出,没有延迟。 我打开他的IP核配置一看,他用的是Distributed Memory Generator。 我以前用的是Block Memory Generator是要延迟一拍的。所以,我立马进行了Distributed Memory Generator的测试。

1 ROM IP核配置  (Distributed Memory Generator)

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

IP核已生成

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

老规矩,查看如何例化

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

 2 ModelSim仿真测试

源码

`timescale 1ns / 1ps

module lab_rom(
        input   wire    clk,
        input   wire    rst_n
);


//==================================================================
//                        Parameter define
//==================================================================
parameter       MAX_ADDR       = 32 - 1;


//==================================================================
//                        Internal Signals
//==================================================================
(* MARK_DEBUG="true" *) reg     [4:0]   a;
(* MARK_DEBUG="true" *) wire    [15:0]  spo;

//----------------------------- addra自增 -----------------------------
always @(posedge clk or negedge rst_n) begin
        if (rst_n == 1'b0) begin
            a <= 'd0;        
        end
        else if(a == MAX_ADDR)begin
                a <= 'd0;
        end
        else begin
                a <= a + 1'b1;
        end
end


//----------------------------- s_rom_32x16b例化 -----------------------------
s_rom_32x16b u1_rom_32x16b (
  .a(a),      // input wire [4 : 0] a
  .spo(spo)  // output wire [15 : 0] spo
);

仿真代码

`timescale 1ns/1ps
module tb_lab_rom (); /* this is automatically generated */

    // clock
    reg clk;
    initial begin
        clk = 1'b0;
        forever #(10) clk = ~clk;
    end

    // asynchronous reset
    reg rst_n;
    initial begin
        rst_n <= 1'b0;
        #10
        rst_n <= 1'b1;
    end

    // (*NOTE*) replace reset, clock, others
    parameter MAX_ADDR = 32 - 1;

    lab_rom #(.MAX_ADDR(MAX_ADDR)) inst_lab_rom (.clk(clk), .rst_n(rst_n));

endmodule

约束文件

create_clock -period 20.000 [get_ports clk]

set_property PACKAGE_PIN N18 [get_ports clk]
set_property PACKAGE_PIN T12 [get_ports rst_n]

set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]

仿真结果

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

 从仿真来看,确实用Distributed Memory Generator生成的ROM IP核是无延迟的。

3 在线调试

在线调试的ILA步骤我这里就不赘述了。 我直接给出结果。

FPGA_学习_17_IP核_ROM(无延迟-立即输出),FPGA,fpga开发,学习

总得来讲,Distributed Memory Generator,虽然深度必须是16的倍数,但其生成的ROM IP核输出是无延迟的,真香!文章来源地址https://www.toymoban.com/news/detail-677738.html

到了这里,关于FPGA_学习_17_IP核_ROM(无延迟-立即输出)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • xilinx FPGA ROM IP核的使用(VHDL&ISE)

    目录 1.新建工程之后 建一个ip核文件: 2.编写顶层文件或者激励文件:(一定一定点击下面这个例化模板 去对ip核进行例化) 3.查看rtl图:   4编写测试文件: 5.仿真图: 工程下载链接:https://download.csdn.net/download/qq_43811597/86488775       根据所存数据的最大值来设置数据位宽

    2024年02月08日
    浏览(49)
  • [FPGA 学习记录] 快速开发的法宝——IP核

    快速开发的法宝——IP核 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为快速开发的法宝。在本小节当中,我们将和各位朋友一起来学习了解 IP 核的相关知识、理解掌握 IP 核的调用方法。 我们分为以下几个部分进行 IP 核的学

    2024年02月05日
    浏览(49)
  • 【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)

    本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL22G开发平台(盘古22K) 一:盘古22K开发板(紫光同创PGL22G开发平台)简介 盘古22K开发板是基于紫光同创Logos系列PGL22G芯片设计的一款FPGA开发板,全

    2024年01月23日
    浏览(66)
  • 【FPGA】Xilinx Cordic IP 内核使用记录(输入输出数据格式介绍)及实验仿真

    Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输出X’, Y’ 具体实现的功能对应的数学表达形式如下: 在做FFT 复乘旋转因子时也可以用这个IP核的Rotate功能来实现。旋转因子-旋转! Translation 实现的功能是求模,以及向量的夹角 输入 X, Y 输出X’ and Phase 具体实现的功能对应

    2024年02月07日
    浏览(50)
  • FPGA IP核配置FIFO中遇到数据不匹配以及输出数据缺失问题的解决与思考

    本人配置了一个 16bit 数据转 8bit 数据的FIFO,因为不涉及异步时钟,所以使用的是单时钟。 一、初级问题 : empty信号一直为高 ,嗯~让我难以下手,毕竟这个问题过于简单化了,这是复位的问题,我的是低电平复位,前期为了方便,我便把复位信号拉低了,然后它一直处于复

    2024年02月03日
    浏览(51)
  • FPGA基础设计(八):串口访问ROM

    将ROM中的数据读取出来,通过串口发送到上位机。 1、按键消抖模块 2、ROM控制器模块 3、创建ROM IP核模块 4、串口发送模块 前面已经设计好了串口发送模块和按键消抖模块,还剩ROM IP的创建和控制ROM模块的设计。 读ROM控制模块设计 : 1、 address :读地址端口 2、 q :读数据端

    2024年02月03日
    浏览(66)
  • ZYNQ之FPGA 片内ROM读写测试实验

    FPGA本身是SRAM架构的,断电之后程序就会消失,那么如何利用FPGA实现一个ROM呢,我们可以利用FPGA内部的RAM资源实现ROM,但这不是真正意义上的ROM,而是每次上电都会把初始化的值先写入RAM。Vivado软件中提供了ROM的IP核 , 我们只需通过IP核例化一个ROM,根据ROM的读时序来读取R

    2024年02月07日
    浏览(45)
  • 【Verilog实现8个输入1个输出的选择器】--FPGA开发

    【Verilog实现8个输入1个输出的选择器】–FPGA开发 在FPGA开发中,选择器是一种重要的电路,它可以将多个输入端口上的数据选择一个输出端口进行传输。通过Verilog语言实现选择器,我们可以灵活地根据实际需求来配置输入和输出端口,提高FPGA的功能和性能。 下面,我们将讨

    2024年02月07日
    浏览(44)
  • 【FPGA零基础学习之旅#17】搭建串口收发与储存双口RAM系统

    🎉欢迎来到FPGA专栏~搭建串口收发与储存双口RAM系统 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 🥝 输入数据: 🥝

    2024年02月08日
    浏览(48)
  • FPGA高端项目:解码索尼IMX390 MIPI相机转HDMI输出,提供FPGA开发板+2套工程源码+技术支持

    FPGA高端项目:解码索尼IMX390 MIPI相机转HDMI输出,提供FPGA开发板+2套工程源码+技术支持 FPGA图像采集领域目前协议最复杂、技术难度最高之一的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作

    2024年04月17日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包