quartus工具篇——ROM ip核

这篇具有很好参考价值的文章主要介绍了quartus工具篇——ROM ip核。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

quartus工具篇——ROM ip核

1、ROM简介

FPGA中的ROM(Read-Only Memory)是一种只读存储器,主要用来存储固化的初始化配置数据。FPGA ROM的特性主要有:

  1. 预编程初始化 - ROM在FPGA编程时就已经写入了初始值,这些值在整个工作周期保持不变。
  2. 初始化配置 - ROM通常用来存储FPGA的初始配置文件或者开机激励向量。
  3. 单端口访问 - ROM通常只提供数据输出接口,不可写入。
  4. 高密度 - 利用定制流程可以实现非常高密度的ROM。
  5. 封闭保密 - ROM存储的数据无法被读取,保证了配置或代码的保密性。
  6. 提高可靠性 - ROM存储更加稳定可靠,不会像RAM丢失数据。
  7. 加速启动 - ROM存储的初始化文件可以加速FPGA的启动配置。
  8. 降低成本 - ROM的制造成本低于RAM。

在许多需求可靠启动和保密的应用中,FPGA通过内置ROM提供了有效的特性实现。它主要作为一种只读非易失的初始化存储器使用。

2、ROM IP核的配置

在quartus右上栏搜索ROM,双击打开并命令,如下图:

quartus工具篇——ROM ip核,fpga开发

设置内存单元大小和需要的内存单元

quartus工具篇——ROM ip核,fpga开发

按照下图进行配置

quartus工具篇——ROM ip核,fpga开发

添加mif文件

quartus工具篇——ROM ip核,fpga开发

勾上选项,进行生成模块实例文件

quartus工具篇——ROM ip核,fpga开发

3、mif文件生成

部分简单的Mif文件我们 可以自己插入数据,比较复杂的就需要应用程序进行生成

简单的数据:

在quartus中生成mif文件

quartus工具篇——ROM ip核,fpga开发

和我们在ip核配置的内存大小和内存个数要相同

quartus工具篇——ROM ip核,fpga开发

自行编辑文件,如下图我编辑的结果

quartus工具篇——ROM ip核,fpga开发

c语言生成Mif文件,我这里gpt生成的效果可能不好,可以自行去网上找一个

#include <stdio.h>

int main() {

  FILE *fptr;
  fptr = fopen("ram_init.mif","w");
  
  fprintf(fptr,"WIDTH=16;\n"); 
  fprintf(fptr,"DEPTH=128;\n\n");

  int i;
  for(i=0; i<128; i++) { 
    fprintf(fptr,"%02X : %04X;\n", i, i*2);
  }

  fclose(fptr);

  return 0;
}

mif文件弄好后重新编辑ip核即可

3、仿真代码编写

// Copyright (C) 2018  Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions 
// and other software and tools, and its AMPP partner logic 
// functions, and any output files from any of the foregoing 
// (including device programming or simulation files), and any 
// associated documentation or information are expressly subject 
// to the terms and conditions of the Intel Program License 
// Subscription Agreement, the Intel Quartus Prime License Agreement,
// the Intel FPGA IP License Agreement, or other applicable license
// agreement, including, without limitation, that your use is for
// the sole purpose of programming logic devices manufactured by
// Intel and sold by Intel or its authorized distributors.  Please
// refer to the applicable agreement for further details.

// *****************************************************************************
// This file contains a Verilog test bench template that is freely editable to  
// suit user's needs .Comments are provided in each section to help the user    
// fill out necessary details.                                                  
// *****************************************************************************
// Generated on "07/24/2023 19:18:12"
                                                                                
// Verilog Test Bench template for design : t5
// 
// Simulation tool : ModelSim-Altera (Verilog)
// 

`timescale 1 ns/ 1 ns
module t5_vlg_tst();

parameter SYS_CLK = 20;
reg clk;
wire[7:0] read_data;
reg[4:0] address = 1'b0;
                    
always #(SYS_CLK/2) clk = ~clk;
integer i;
initial begin
    clk = 1'b0;
    for(i = 0;i<31;i=i+1)begin
        #(SYS_CLK*2)
        address = address+1'b1;
    end
    #(20*SYS_CLK);
    $stop;
end                                                                             

ROM ROM_inst (
    .address ( address ),
    .clock ( clk ),
    .q ( read_data )
    );
                                   
endmodule

4、仿真结果

quartus工具篇——ROM ip核,fpga开发

5、结果

ROM配置较为简单,但也是非常实用的,由于本人水平有限,只能作为自己一个复习的标准,可能描述的不是很详细,大家可以观看这个视频,描述的很详细

05_IP核之ROM使用讲解_哔哩哔哩_bilibili文章来源地址https://www.toymoban.com/news/detail-611343.html

到了这里,关于quartus工具篇——ROM ip核的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [FPGA IP系列] FPGA常用存储资源大全(RAM、ROM、CAM、SRAM、DRAM、FLASH)

    本文主要介绍FPGA中常用的RAM、ROM、CAM、SRAM、DRAM、FLASH等资源。 RAM(Random Access Memory)是FPGA中最基本和常用的内部存储块,根据不同架构可以实现不同容量,最大可达几十Mb。 FPGA中的RAM主要包括: 分布式RAM:存在于逻辑块(LE)中的小容量RAM,通常为几百比特到几千比特。 块RAM:F

    2024年02月12日
    浏览(31)
  • 【FPGA】FFT测量信号频率(Quartus IP核)

    ​​​​​​​ 一、前言 二、FFT是什么(原理)? 三、FFT IP核参数介绍 四、仿真 0、文件完整结构 1、设置IP核 2、例化FFT,并完善顶层文件 3、利用matlab生成正弦波信号 4、导出变量x生成的正弦波数据 5、编写testbench 6、RTL Simulation 五、上板 1、matlab生成正弦波信号并导出m

    2024年04月28日
    浏览(26)
  • FPGA时序分析工具上手(一)(Quartus)

    在FPGA的设计中,往往要进行时序约束,时序约束的作用是告诉EDA软件,该设计要达到什么样的时序标准,在时序约束中,有着欠约束和过约束之分。 对于欠约束,就是约束的力度不够大,导致约束不足。 对于过约束,约束力度足够大,那么为什么也不行呢?假设FPGA中有三条

    2024年02月05日
    浏览(40)
  • FPGA之Quartus II 自带的IP核的使用(IP核仅自己学习,未完成)

    1、锁相环:       锁相环是对接收到的信号进行处理,并从其中提取某个时钟的相位信息。锁相环由鉴相器、环路滤波器和压控振荡器组成。  锁相环原理图 鉴相器:         用来鉴别输入信号输入信号Ui与输出信号输出信号Uo之间的相位差相位差,并输出误差电压Ud。Ud

    2023年04月09日
    浏览(31)
  • quartus工具篇——fifo ip核

    FPGA 中的 FIFO(First-In, First-Out)是一种常见的数据缓冲器,用于在不同的时钟域之间进行数据传输。FIFO 可以暂存一定数量的数据,并支持并行读取和写入操作,同时保持先进先出的数据顺序。 FIFO 在 FPGA 中的应用非常广泛,特别是在需要处理异步数据交换的场景中。以下是一

    2024年02月07日
    浏览(34)
  • quartus工具篇——PLL IP核的使用

    PLL(Phase-Locked Loop,相位锁环)是FPGA中非常重要的时钟管理单元,其主要功能包括: 频率合成 - PLL可以生成比输入时钟频率高的时钟信号。 频率分频 - PLL也可以输出分频后的较低频率时钟。 减小时钟抖动 - PLL可以过滤输入时钟中的噪声和抖动。 锁相输出 - PLL可以使多个时钟保持一

    2024年02月07日
    浏览(28)
  • FPGA开发(基于Quartus II)万年历,简单代码

       设计一个基于FPGA的电子万年历。设计的主要任务是在Quartus II开发环境中完成电子万年历系统FPGA内部各电路模块的设计,包括各个模块的设计输入、编译、仿真、验证和硬件测试任务。具体要求如下: 能实现2 4 小时、6 0 分、6 0 秒的基本计时功能,格式为0 8 - 56 - 36 :时

    2024年02月04日
    浏览(29)
  • Quartus 无法识别 USB-Blaster FPGA 开发板

    在 FPGA(现场可编程门阵列)开发中,Quartus 是一款常用的设计软件,用于编写、编译和配置 FPGA 设备。然而,有时候在使用 Quartus 进行开发时,可能会遇到无法识别 USB-Blaster FPGA 开发板的问题。本文将介绍可能导致该问题的几种常见原因,并提供一些解决方案。 驱动程序问

    2024年02月04日
    浏览(32)
  • 密码锁设计Verilog代码Quartus 睿智FPGA开发板

    名称:密码锁设计Verilog代码Quartus  睿智FPGA开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 1、设计一个密码锁的控制电路,当输入正确代码时,输岀开锁信号用红灯亮、绿灯 熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁 2、在锁的控制电路中储存一个可以修改的4位代

    2024年01月18日
    浏览(37)
  • Quartus数字秒表verilog代码青创QC-FPGA开发板

    名称:Quartus数字秒表verilog代码青创QC-FPGA开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 数字秒表设计 1、支持复位、启动、暂停 2、具有量程切换功能,可以切换显示小时、分钟或者秒、毫秒 3、数码管显示时间,精确到10毫秒 FPGA代码Verilog/VHDL代码资源下载:www.hd

    2024年02月03日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包