FPGA学习系列:16. rom控制器设计

FPGA学习交流 2018-06-13 11:21 次阅读

设计背景:

    ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。

    ROM是由英文Read only Memory的首字母构成的,意为只读存储器。顾名思义,就是这样的存储器只能读,不能像RAM一样可以随时读和写。它只允许在生产出来之后有一次写的机会,数据一旦写入则不可更改。它另外一个特点是存储器掉电后里面的数据不丢失,可以存放成百上千年。此类存储器多用来存放固件,比如计算机启动的引导程序,手机、MP3、MP4、数码相机等一些电子产品的相应的程序代码。

设计原理: 

    我们的设计是读ROM的数据,然后读到最后一个数据的时候,然后又从最后的地址往回读数据,来实现循环读数。

    首先我们先创建一个.mif文件,然后给对应的地址中写如数据,然后设计一个IP核,之后通过读ROM的地址,来读出ROM中存在的数据,具体的操作如下面的操作。      

                

    下一步,建立一个深度256,位宽为8的 .mif。

    

    

    然后在第一个地址右键。

                

                填写开始地址以及结束地址,我们给每一位的地址位写上和地址一样的数据,那么就是数据从0开始,步进为1,如下,然后然后完成,保存。

    

    

    这样我们写好我们.mif文件,然后进行下面的步骤。

    

    

    

    

    选择我们所选的硬件描述语言,我们都是verilog HDL,然后选择我们文件生成的路径,下一步。

    设置我们的输出的位宽,和深度,我们的深度256,位宽8,下一步。

    

    去掉输出是否有寄存器的对勾,如果选了输出会晚一拍,因为加了一个输出寄存器。

    

    然后出现下面的界面,点击,选择我们生成的.mif文件,添加进来,然后下一步,下一步完成。

    

    

设计架构图:

设计代码:

顶层模块

0 module rom(clk,rst_n,data);

1  input clk;

2  input rst_n;

4  output [7:0] data;

6  wire [7:0]address;

8  rom_r rom_r (   //例化ROM控制器模块

9    .clk(clk),

10   .rst_n(rst_n),

11   .address(address)

12   );

13

14 my_rom my_rom_inst (       //例化IP核模块

15  .address ( address ),

16  .clock ( clk ),

17  .q ( data )

18 );

19

20 endmodule 

设计模块

0 module rom_r(clk,rst_n,address);

2  input clk;

3  input rst_n;

5  output reg [7:0] address;

7  reg [1:0] state;

8  always @(posedge clk or negedge rst_n)

9   if(!rst_n)

10   begin

11    address <= 1'b0;

12    state <= 1'b0;

13   end

14  else

15   begin

16    case (state)

17      0:begin

18        if(address < 255)    //判断地址

19         begin

20          address <= address + 1'b1; //地址激增

21         end

22        else

23         begin

24          if(address == 255)    //判断是否读完

25           begin

26            address <= address - 1'b1; 

27            state <= 1;

28           end

29          

30         end

31       end

32      1:begin

33        if(address > 0)  //读完就跳转一状态后让地址减1

34         begin

35          address <= address - 1'b1;

36         end

37        else

38         begin

39          address <= address + 1'b1;

40          state <= 0;

41         end

42       end

43      default : state <= 0;

44    endcase

45   end

46 endmodule 

测试模块

0 `timescale 1ns/1ps

2 module rom_tb();

4  reg clk;

5  reg rst_n;

7  wire [7:0] data;

9  initial begin

10   clk = 1'b1;

11   rst_n = 1'b0;

12

13   #100.1 rst_n = 1'b1;

14

15   #20000 $stop;   //20000NS后停止仿真

16

17  end

18

19  always #10 clk = ~clk;   //产生50M时钟

20

21 rom rom_dut (      //例化顶层模块

22   .clk(clk),

23   .rst_n(rst_n),

24   .data(data)

25   );

26 endmodule 

仿真图:

    仿真中我们可以看到和我们的设计一样,我们先从0地址读数据,当读到最后一个数后,然后返回来从最后一个地址开始读数。

收藏 人收藏
分享:

评论

相关推荐

学习FPGA可从事哪些工作?FPGA市场需求量大概是多少?

FPGA介绍:   FPGA(Field-Programmable Gate Array)是现场可编程门阵列的简称,简单来说是一种逻辑数字电路...

发表于 08-15 11:39 20次 阅读
学习FPGA可从事哪些工作?FPGA市场需求量大概是多少?

PCB、FPGA、 EDA之间有什么关系吗?如何理解它们?

FPGA是一种可编程器件,用硬件描述语言进行编程使之拥有你所需要的功能,基本上就是EDA了吧。 我这个打个比方,比如一个...

发表于 08-15 11:35 23次 阅读
PCB、FPGA、 EDA之间有什么关系吗?如何理解它们?

国产FPGA发展迎来“天时”生态系统不完善,乃当前最大难题

FPGA因技术门槛极高,全球市场份额主要被美国四大巨头高度垄断。据不完全统计,在全球约50亿美元的F....

的头像 电子发烧友网 发表于 08-15 10:43 93次 阅读
国产FPGA发展迎来“天时”生态系统不完善,乃当前最大难题

运用FPGA解决DSP设计难题

作者:Reg Zatrepalek Hardent 公司 DSP/FGPA 设计专家 rzatrepalek@hardent.com 本文以实践为基础,对 DSP和...

发表于 08-15 09:46 60次 阅读
运用FPGA解决DSP设计难题

基于DSP和FPGA技术的低信噪比雷达信号检测

我国目前的海事雷达大多为进口雷达,有效探测间隔小,在信噪比降为3 dB时已经无法识别信号。随着微电子技术的迅猛发展,高速A/...

发表于 08-15 09:43 50次 阅读
基于DSP和FPGA技术的低信噪比雷达信号检测

中美贸易酣战正急,国产FPGA遇“天时”尚需“人和”?

目前,全球FPGA市场被美国Xilinx(赛灵思)、Altera(阿尔特拉)、Lattice(莱迪思)、Microsemi(美高森美)四大巨头高度...

发表于 08-15 09:34 56次 阅读
中美贸易酣战正急,国产FPGA遇“天时”尚需“人和”?

基于带处理器和FPGA的SoC的新型SoM

本文将讨论使用 SoM 来开发嵌入式系统的优势,这些系统需要借由 FPGA 提供更高的处理能力。本文....

的头像 电子设计 发表于 08-15 09:21 190次 阅读
基于带处理器和FPGA的SoC的新型SoM

请问器件AD5750-2BCPZ两个信号VSENSE+和VSENSE-的保护作用是保护负载吗?

最近我在做FPGA项目,用到了贵公司的器件,型号是AD5750-2BCPZ,遇到了一些问题,希望能得到帮助: (1)根据器件说明...

发表于 08-15 07:22 29次 阅读
请问器件AD5750-2BCPZ两个信号VSENSE+和VSENSE-的保护作用是保护负载吗?

四强联手发布了基于FPGA的一系列vBRAS解决方案,加快了FPGA硬件加速的步伐

在近日举行的2018上海世界移动大会期间,中国电信、英特尔、联想与赛特斯联合发布了基于FPGA的一系....

发表于 08-14 16:20 130次 阅读
四强联手发布了基于FPGA的一系列vBRAS解决方案,加快了FPGA硬件加速的步伐

现代先进武器装备为何越来越青睐高端芯片?

至于FPGA,它包含大量门电路,使芯片更集成化,速度更快,可靠性更高.尤其是具有系统内可再编程(可再....

的头像 半导体观察IC 发表于 08-14 14:58 338次 阅读
现代先进武器装备为何越来越青睐高端芯片?

数字电路中最简单的混频知识

在FPGA设计中,不管是Altera还是Xilinx,它们的IP核几乎都是采用二进制补码带符号数,也....

的头像 FPGA技术联盟 发表于 08-14 14:35 90次 阅读
数字电路中最简单的混频知识

arm加载fpga程序为什么DONE信号一直为低?

[ENV] 我们的一块板卡上有FPGA(7A200T),ARM(tm4c1294),FLASH(N25Q),想通过arm上电加载fpga启动,过程如下;...

发表于 08-14 14:35 31次 阅读
arm加载fpga程序为什么DONE信号一直为低?

FPGA在音乐科技及医疗照护领域的应用

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

的头像 芯榜 发表于 08-14 10:39 166次 阅读
FPGA在音乐科技及医疗照护领域的应用

以FPGA和CPLD为基础的灵活可行的降低汽车电子物料成本解决方案

汽车制造商们坚持不懈地改进车内舒适性、安全性、便利性、工作效能和娱乐性,反过来,这些努力又推动了各....

发表于 08-14 10:01 66次 阅读
以FPGA和CPLD为基础的灵活可行的降低汽车电子物料成本解决方案

将FPGA作为下一代汽车电子设计的灵活及低成本解决方案还需要考虑这些问题

随着汽车在过去 25 年中从纯机械设备演变成高度集成的线控驾驶汽车电子系统,设计人员面临的挑战也不....

发表于 08-14 09:31 55次 阅读
将FPGA作为下一代汽车电子设计的灵活及低成本解决方案还需要考虑这些问题

电子工程师为什么要学会用FPGA 有什么好处?

对当今的硬件工程师来讲,FPGA的应用是同PCB设计一样必须掌握的技能,因此在过去三年里我们摩尔吧的硬禾实战营最重要的技...

发表于 08-14 09:29 66次 阅读
电子工程师为什么要学会用FPGA 有什么好处?

如何高效学习FPGA 学习FPGA应该避免那些误区

FPGA对于硬件工程师以及高校师生来说是非常重要的一项技能,其重要性甚至要超过PCB设计,不仅是因为在电子产品系统中(尤...

发表于 08-14 09:14 59次 阅读
如何高效学习FPGA 学习FPGA应该避免那些误区

基于FPGA的二值图像的膨胀算法的实现

1 背景知识 二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单...

发表于 08-14 09:08 102次 阅读
基于FPGA的二值图像的膨胀算法的实现

鼎阳SDS1102X示波器拆解分析

用单片SoC芯片替代传统的CPU+FPGA的分立方案,也可以减少硬件布板面积,有利于将高性能处理系统....

的头像 硬件十万个为什么 发表于 08-13 17:32 430次 阅读
鼎阳SDS1102X示波器拆解分析

Xilinx利用FPGA迈出了AI领域的第一步,未来前景可期

未来几年,人工智能芯片的需求将急剧上升。联合市场研究公司(Allied Market Researc....

发表于 08-13 16:49 98次 阅读
Xilinx利用FPGA迈出了AI领域的第一步,未来前景可期

FPGA巨头赛灵思收购深鉴科技,计划未来布局中国ADAS及自动驾驶

上周,刚刚收购深鉴科技的FPGA巨头:赛灵思面向媒体记者在深举行了“汽车产业最新技术与产品说明会”。....

发表于 08-13 16:40 288次 阅读
FPGA巨头赛灵思收购深鉴科技,计划未来布局中国ADAS及自动驾驶

FPGA学习系列:26. 计算器的设计

设计背景:计算器是设计中经常用到的一个操作软件,设计和学习计算器使我们亲密的联系所学的各模块, 对我....

的头像 FPGA学习交流 发表于 08-13 13:45 100次 阅读
FPGA学习系列:26. 计算器的设计

FPGA学习系列:27. VGA驱动设计

设计背景:     VGA (Video Graphics Array) 即视频图形阵列,是IBM于....

的头像 FPGA学习交流 发表于 08-13 13:45 127次 阅读
FPGA学习系列:27. VGA驱动设计

简谈FPGA/Verilog中inout端口使用方法

        大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA/Verilog中inout....

的头像 FPGA学习交流 发表于 08-13 13:45 114次 阅读
简谈FPGA/Verilog中inout端口使用方法

以FPGA为核心的多轴控制器设计

专用控制器在完成整个控制的过程中,arm只负责指令解析、控制指令发送、实时数据上传等任务,fpga才....

发表于 08-12 09:47 265次 阅读
以FPGA为核心的多轴控制器设计

如何使用云科技在线设计PCB?详细经验教程

OrCAD® Capture Cloud工具作为桌面版本的一部分被引入市场,并拥有如下优势: 无需....

的头像 CadencePCB和封装设计 发表于 08-12 09:44 241次 阅读
如何使用云科技在线设计PCB?详细经验教程

以FPGA系统为核心的1553B总线接口设计

在总线接口模块中,曼彻斯特编解码是实现功能的核心部分,所以编码数据和解码数据是进行功能验证时观察的重....

发表于 08-12 09:44 61次 阅读
以FPGA系统为核心的1553B总线接口设计

如何设计一个基于FPGA的嵌入式监控系统?

为了实现自动图像报警和图像采集,本文设计了动体检测算法,这是因为绝大多数情况下我们只对监控区域中运动....

发表于 08-12 09:39 66次 阅读
如何设计一个基于FPGA的嵌入式监控系统?

以FPGA为核心的高阶快速数字滤波器设计

本文详细讲述了通过Matlab工具设计FIR线性相位滤波器的方法, 并针对声波信号设计了优于传统结构....

发表于 08-12 09:33 58次 阅读
以FPGA为核心的高阶快速数字滤波器设计

如何利用FPGA研究CPU工作原理实现其功能?

初始时的PC 为0000H, SP为03FFH。SP的更改可通过指令sph l来执行。针对实验箱, ....

发表于 08-12 09:29 72次 阅读
如何利用FPGA研究CPU工作原理实现其功能?

如何设计一个16位的嵌入式微控制器?

使用的FPGA器件是StratixⅡ型号为EP1S40F780C7。综合结果显示:A8096使用3 ....

发表于 08-12 09:11 79次 阅读
如何设计一个16位的嵌入式微控制器?

关于FPGA的优势以及产业化的限制因素详解

可编程的“万能芯片” FPGA——现场可编程门阵列,是指一切通过软件手段更改、配置器件内部连接结构....

发表于 08-11 11:47 58次 阅读
关于FPGA的优势以及产业化的限制因素详解

各种存储器接口控制器设计所面临的挑战和Xilinx的解决方案详解

FPGA 设计人员在满足关键时序余量的同时力争实现更高性能,在这种情况下,存储器接口的设计是一个一....

发表于 08-11 11:04 1368次 阅读
各种存储器接口控制器设计所面临的挑战和Xilinx的解决方案详解

FPGA究竟是什么?能代替CPU架构吗?

FPGA全称现场可编程门阵列(Field-Programmable Gate Array),最初作为....

的头像 FPGA极客空间 发表于 08-10 17:23 382次 阅读
FPGA究竟是什么?能代替CPU架构吗?

如何实现用Python开发FPGA?

近日,想必各位科技爱好者的朋友圈都被一篇发表在第25届IEEE国际讨论会上,用Python开发FPG....

的头像 FPGA开发圈 发表于 08-10 14:57 206次 阅读
如何实现用Python开发FPGA?

简谈FPGA verilog中的function用法与例子

大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA verilog中的function用法与例....

的头像 FPGA学习交流 发表于 08-10 13:42 595次 阅读
简谈FPGA verilog中的function用法与例子

Virtex UltraScale+ FPGA:业界首款以16FF+工艺制造的高端FinFET FPGA

赛灵思在UltraScale+产品系列及设计工具上一直与100多家客户积极接触,目前已向其中60多....

发表于 08-10 11:35 46次 阅读
Virtex UltraScale+ FPGA:业界首款以16FF+工艺制造的高端FinFET FPGA

Xilinx推出SDSoC发环境2016.1版,使用 C和C++语言进行软件定义编程

赛灵思公司 (Xilinx) 推出 SDSoC发环境2016.1版,支持Zynq系列SoC和MPS....

发表于 08-10 11:16 94次 阅读
Xilinx推出SDSoC发环境2016.1版,使用 C和C++语言进行软件定义编程

在FPGA模块层如何提供容错设计

赛灵思根据实际情况提供了基于器件的打包式解决方案,从而帮助用户克服功能安全系统设计的复杂性挑战,而且....

的头像 FPGA开发圈 发表于 08-10 09:55 730次 阅读
在FPGA模块层如何提供容错设计

FPGA学习系列:26. 矩阵键盘的设计

设计背景: 矩阵键盘在工程设计越来越多的被用到,已然成为了我们做开发接触到的不可缺少的小型项目,利于....

的头像 FPGA学习交流 发表于 08-09 10:47 786次 阅读
FPGA学习系列:26. 矩阵键盘的设计

Quartus Prime Pro设计软件:用于支持英特尔下一代高度集成的大容量FPGA

Altera(现在已属英特尔公司)今天发布新的产品版Quartus Prime Pro设计软件,进....

发表于 08-09 09:21 74次 阅读
Quartus Prime Pro设计软件:用于支持英特尔下一代高度集成的大容量FPGA

Mouser供货Terasic开发套件,专为Altera SoC FPGA而设

贸泽电子(Mouser Electronics) 即日起开始分销Terasic Technolog....

发表于 08-09 08:42 44次 阅读
Mouser供货Terasic开发套件,专为Altera SoC FPGA而设

数字集成电路设计Verilog的详细资料介绍免费下载

Verilog的主要应用包括: – ASIC和FPGA工程师编写可综合的RTL代码 – 高抽象级....

发表于 08-09 08:00 45次 阅读
数字集成电路设计Verilog的详细资料介绍免费下载

Vivado设计套件TCL命令资料参考指南免费下载

工具命令语言(TCL)是集成在VIVADO环境中的脚本语言。TCL是半导体工业中用于应用程序编程接口....

发表于 08-09 08:00 34次 阅读
Vivado设计套件TCL命令资料参考指南免费下载

基于现场可编程门阵列(fpga)技术fir数字滤波器的设计

设计一个滤波器,其采样率 fs=1MHz,通带截止频率 fpass=50KHz,归一化表示fpass....

的头像 FPGA技术联盟 发表于 08-08 15:55 288次 阅读
基于现场可编程门阵列(fpga)技术fir数字滤波器的设计

FPGA怎么搭复位电路 fpga复位电路设计方案

FPGA的可靠复位是保证系统能够正常工作的必要条件,本文对FPGA设计中常用的复位设计方法进行了分类....

发表于 08-08 15:14 84次 阅读
FPGA怎么搭复位电路 fpga复位电路设计方案

美高森美最新11.7版本Libero系统级芯片,是用于FPGA产品的全面FPGA设计工具套件

美高森美公司(Microsemi Corporation)宣布推出最新11.7版本Libero系统....

发表于 08-08 14:28 43次 阅读
美高森美最新11.7版本Libero系统级芯片,是用于FPGA产品的全面FPGA设计工具套件

FPGA学习系列:23. 音乐蜂鸣器的设计

设计背景: 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、....

的头像 FPGA学习交流 发表于 08-08 12:31 520次 阅读
FPGA学习系列:23. 音乐蜂鸣器的设计

浅析国内FPGA市场发展现状

2018年上半年对于中国半导体行业而言是多事之秋,发生了几件让国人深入思考的大事。我作为IC产业的逃....

的头像 FPGA极客空间 发表于 08-08 10:50 595次 阅读
浅析国内FPGA市场发展现状

浅析2018人工智能曲线五个阶段的关键技术

工智能被广为关注,但是一些想法恐难达到预期。本成熟度曲线将追踪AI基本趋势和未来创新,以确定人工智能....

的头像 智能制造 发表于 08-08 09:12 1066次 阅读
浅析2018人工智能曲线五个阶段的关键技术

FPGA开发攻略为什么要掌握FPGA开发知识?FPGA详细资料免费下载

FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门....

发表于 08-08 08:00 47次 阅读
FPGA开发攻略为什么要掌握FPGA开发知识?FPGA详细资料免费下载

利用人工智能定时方案简化高性能计算加速

云计算和人工智能(AI)将会是解决一些世界上最大的挑战的关键,如加速科学发现、加快医学研究、能源、医....

的头像 SiliconLabs 发表于 08-07 15:30 365次 阅读
利用人工智能定时方案简化高性能计算加速

极目智能发布旗下最新车规级视觉ADAS解决方案,该系统搭载Xilinx高性能FPGA平台

2018年8月3日,智能驾驶辅助技术供应商极目智能发布旗下最新车规级视觉ADAS解决方案JM600....

发表于 08-07 14:24 172次 阅读
极目智能发布旗下最新车规级视觉ADAS解决方案,该系统搭载Xilinx高性能FPGA平台

几种进行FPGA时序约束的方法大盘点!

从最近一段时间工作和学习的成果中,我总结了如下几种进行时序约束的方法。按照从易到难的顺序排列如下:

发表于 08-07 14:14 171次 阅读
几种进行FPGA时序约束的方法大盘点!

xilinx下载器驱动提示“系统找不到指定的路径”的解决过程

本篇记录了本人解决xilinx下载器驱动安装问题(装驱动提示错误如下图)。主要过程就是更新到win1....

的头像 FPGA学习交流 发表于 08-07 13:47 343次 阅读
xilinx下载器驱动提示“系统找不到指定的路径”的解决过程

FPGA学习系列:22. 数字时钟的设计

设计背景:数字时钟的设计,在我们的好多设计中都有过这样那样的设计,这基本属于一个比较精简的一个小项目....

的头像 FPGA学习交流 发表于 08-07 13:47 195次 阅读
FPGA学习系列:22. 数字时钟的设计

FPGA学习系列:24. FIFO控制器的设计

设计背景: First Input First Output的缩写,先入先出队列,这是一种传统的按序....

的头像 FPGA学习交流 发表于 08-07 11:11 450次 阅读
FPGA学习系列:24. FIFO控制器的设计

蜂鸣器音乐程序与最简单蜂鸣器电路图之FPGA学习课程

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子....

发表于 08-07 10:35 115次 阅读
蜂鸣器音乐程序与最简单蜂鸣器电路图之FPGA学习课程

基于verilog的FPGA中上电复位设计

在实际设计中,由于外部阻容复位时间短,可能无法使FPGA内部复位到理想的状态,所以今天介绍一下网上流....

的头像 FPGA极客空间 发表于 08-07 09:17 615次 阅读
基于verilog的FPGA中上电复位设计

从云端到边缘推动FPGA应用拓展

快速兴起的网络边缘计算对于FPGA的应用需求也在增加。莱迪思半导体亚太区资深事业发展经理陈英仁表示:....

的头像 FPGA技术联盟 发表于 08-06 16:25 530次 阅读
从云端到边缘推动FPGA应用拓展