0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习系列:20. ram控制器的设计(调用IP核)

FPGA学习交流 2018-06-18 19:24 次阅读

设计背景:

随机存取存储器(random access memory,RAM)又称作"随机存储器",是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储单元的工作原理,随机存储器又分为静态随机存储器(英文:Static RAM,SRAM)和动态随机存储器(英文Dynamic RAM,DRAM)。

设计原理:

本次设计我们通过调用我们的RAM的IP核来给它写我们的控制器,来实现RAM的可读可写的特点。

我们设计的是RAM的深度为256,我们先写256个数,然后再读出我们写的256个数。值得一说的是,我们的读写标志是高位为写标志,低位为读标志。

设计步骤,打开我么的调用IP核的界面,然后下一步:

image.png

在下面的选项中选出我们RAM,如图所示,然后起一个我们的输出名,然后下一步:

image.png

在下面的页面中我们设置我们的位宽和深度,然后设置如下,下一步:

image.png

下面的页面中,问我们设置不设置我们的输出寄存器,我们不要设置,如下,然后下一步:

image.png

然后下一步,下一步,直接到下面的界面,选择生成.inst文件,然后完成。

image.png

设计架构图:

image.png

设计代码:

顶层模块

0moduleram(clk ,rst_n ,q); //输入输出端口设置

1 inputclk;

2 inputrst_n;

3

4 output[7:0]q;

5

6 wire[7:0]data;

7 wirewren;

8 wire[7:0]address;

9

10 ram_contl ram_contl( //例化我们的RAM控制器

11 .clk(clk),

12 .rst_n(rst_n),

13 .data(data),

14 .wren(wren),

15 .address(address)

16 );

17 my_ram my_ram_inst ( //例化ip

18 .address (address),

19 .clock (clk),

20 .data (data),

21 .wren (wren ),

22 .q (q)

23 );

24endmodule

设计模块

0moduleram_contl(clk,rst_n,data,wren,address);

1 inputclk;

2 inputrst_n;

3

4 outputreg[7:0]data; //输出

5 outputregwren; //读写位

6 outputreg[7:0]address; //地址位

7

8 regstate;

9 always@(posedgeclk ornegedgerst_n)

10 if(!rst_n)

11 begin

12 data <=8'b0;

13 wren <=1'b0;

14 address <=8'b0;

15 state <=1'b0;

16 end

17 else

18 begin

19 case(state)

20 0:begin

21 wren <=1'b1; //打开写使能,写我们的数据

22 if(address <255)

23 begin

24 address <=address +1'b1;//地址加一,

25 data <=data +1'b1;//数据加一

26 end

27 else

28 begin

29 address <=1'b0; //写完后打开读

30 data <=1'b0;

31 state <=1;

32 wren <=1'b0;

33 end

34 end

35 1:begin

36 if(address <255) //读出我们的数据

37 begin

38 address <=address +1'b1;

39 end

40 else

41 begin

42 address <=1'b0;

43 state <=0;

44 end

45 end

46 default:state <=0;

47 endcase

48 end

49endmodule

测试模块

0`timescale1ns/1ps

1

2moduleram_tb();

3 regclk;

4 regrst_n;

5

6 wire[7:0]q;

7

8 initialbegin

9 clk =1'b1;

10 rst_n =1'b0;

11

12 #100.1rst_n =1'b1;

13

14 #200000.1$stop;

15

16 end

17

18 always#10clk =~clk;

19

20ramram_dut (

21 .clk(clk),

22 .rst_n(rst_n),

23 .q(q)

24 );

25

26endmodule

仿真:

在图中我们可以看到,我们写入的数据,和我们读出的数据是相同的。

image.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593128
收藏 人收藏

    评论

    相关推荐

    IP简介

    本帖最后由 eehome 于 2013-1-5 09:59 编辑 IP简介IP是指:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波
    发表于 07-06 14:15

    IP简介

    IP简介IP是指:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波、SDRAM控制器
    发表于 07-15 14:46

    ATM流量控制器IP的设计和实现

    可以移植到不同的半导体工艺中去生产集成电路芯片。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP是一个趋势。  本文研究了ATM流量控制的原理,并给出了一种
    发表于 09-27 11:54

    FPGA上对OC8051IP的修改与测试

    FPGA上对OC8051IP的修改与测试FPGA上对OC8051IP的修改与测试单片机与嵌入
    发表于 08-11 11:41

    FPGA IP的相关问题

    我用的是xinlinx spartan6 FPGA,我想知道它的IPRAM是与FPGA独立的,只是集成在了一起呢,还是占用了
    发表于 01-10 17:19

    【连载视频教程(四)】小梅哥FPGA设计思想与验证方法视频教程之高性能计数IP使用

    讲,主要通过演示FPGA数字逻辑设计中除Verilog代码方式设计外另外一种最常用的设计方式——使用IP进行系统设计。本教程讲解了如何在Quartus II软件中调用一个基本的免费
    发表于 09-22 14:06

    例说FPGA连载39:DDR控制器集成与读写测试之FPGA片内RAM设置与集成

    `例说FPGA连载39:DDR控制器集成与读写测试之FPGA片内RAM设置与集成特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1c0nf6
    发表于 10-14 18:07

    例说FPGA连载41:DDR控制器集成与读写测试之DDR2 IP接口描述

    `例说FPGA连载41:DDR控制器集成与读写测试之DDR2 IP接口描述特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1c0nf6Qc
    发表于 10-27 16:36

    xilinx FPGA的FFT IP调用

    有没有大神可以提供xilinx FPGA的FFT IP调用的verilog 的参考程序,最近在学习FFT的
    发表于 12-25 17:05

    Xilinx系列FPGA芯片IP详解

    `Xilinx系列FPGA芯片IP详解(完整高清书签版)`
    发表于 06-06 13:15

    采用Avalon总线接口实现UPFC控制器IP设计

    (Intel-Formal)File (.hex),应用时可选其中任意一种。但设计之前必须考虑所用FPGA片上ROM的大小,同时也要考虑输出数据的分辨率。因为UPFC控制器IP的地
    发表于 06-03 05:00

    基于FPGA的数据采集控制器IP的设计方案和实现方法研究

    此提供了新的解决方案。IP(IP Core)是具有特定电路功能的硬件描述语言程序,可较方便地进行修改和定制,以提高设计效率[3]。本文研究了基于FPGA的数据采集
    发表于 07-09 07:23

    请问Altera RAM IP怎么使用?

    请问Altera RAM IP怎么使用?
    发表于 01-18 06:59

    FPGA零基础学习IP CORE 之 RAM设计

    系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有
    发表于 03-14 17:38

    基于FPGA的SD卡控制器IP

    基于FPGA的SD卡控制器IP,以验证可用。
    发表于 11-06 09:50 10次下载