FPGA的片内有很多的存储器资源,可以配置成单端口的ROM、RAM和双端口的ROM、RAM,以及移位寄存器和FIFO等。在学习过程中,笔者遇到过几个小问题,总结如下:

片内是不是有ROM或者RAM?

个人观点:片内没有ROM或者RAM的,有的只是一些功能比较强大的存储器块,可以通过配置变成我们想要的功能。例如将RAM的wren端子和data端子直接接地,那么就变成了ROM。片内有的是一些M9K、M4K等等,M9K代表容量为9Kbits的存储器。

选择组成存储器的类型以及存储器块的最大深度?

图1

  

个人观点:对于这两个的话,建议选择“AUTO”。下图是官方给出的建议:

图2

图3

  对于RAM和ROM模式,q输出段是否应该被寄存?

个人观点:其实寄存也好,不被寄存也好,结果只是输出的是不是会延迟一个时钟周期。但是笔者建议q应该被寄存一下。在RAM或者ROM中,地址被寄存,而最终的输出是用的组合逻辑进行输出,如果q被引用时也经过了大量的逻辑,那么存储器中的逻辑和被引用时的逻辑就会组成一个比较大的逻辑,整个设计的速度就会变慢。

对于RAM和ROM模式,是否应该引出rden信号?

个人观点:之前我在学习中,rden从来没有引出过,因为自己的设计自己知道,什么时候去读,只要正确的时序就可以了,近期接触到官方文档后,官方推荐引出rden信号,用于降低功耗。

图4

  在RAM模式中,如果出现对于同一个地址进行读写会出现什么情况?

  

图5

  

  个人观点:之前学习中,这个界面几乎从来没有关系过,直接都是略过,保持默认值不变。近期考虑这个问题,查看官方手册,此项可以选择New Data、Old Data和Donot Care,默认值是New Data。

这个问题可以分为两个方向考虑:

同一个端口同时读写,那么时序如下:

图6

图7

  对于不同的端口来说,只有Old DATA,don’t care就不关心了。

图8

  对于初始化文件.hex或者.mif文件,当存储器发生写入时,文件内容没有发生改变?

个人观点:.hex或者.mif文件并没有被下板,只是综合器在综合时,将文件中的内容读取出来,配置给存储器而已,本身文件和下板没有关系,所以在仿真也好,或者下板也好,对于存储器的写入并不会改变文件中的值。对于经常使用.txt初始化的设计者,结果也是一样的,.txt的内容并不会被改变。

使用reg [n-1:0] reg_name [m-1:0]定义存储器。

个人观点:此种方法是可以定义存储器的,但是经过笔者实际测试,不同的深度和位宽会影响综合器选择存储器块还是LE构成,并且会综合器在综合过程中会产生很多的警告。笔者在公司研发,使用此种方式进行存储器定义使用,被领导批评过。具体的原因有待发掘,在此,笔者建议设计者在设计时,如果要用到存储器,利用IPCore的插件向导完成还是比较好的。

笔者将上文中所用的存储器官方资料都放到了,QQ群:173560979群文件中,如果有需要的可以下载。

笔者水平有限,如果设计中,有什么不妥的地方,恳请大佬们指出来。

  欢迎加好友探讨QQ(奋斗的小孩郝旭帅):746833924,QQ群:173560979。

intel-FPGA的片内存储器问题的更多相关文章

  1. 关于INTEL FPGA设计工具DSP Builder

    一段时间以来,MathWorks一直主张使用Matlab和Simulink开发工具进行基于模型的设计,因为好的设计技术使您能够在更短的时间内开发更高质量的复杂软件.基于模块的设计采用了数学和可视化的方 ...

  2. 基于INTEL FPGA硬浮点DSP实现卷积运算

    概述 卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波.而随着人工智能及深度学习的发展,卷积也在神经网络中发挥重要的作用,如卷积神经网络.本参考设计主要介绍如何基于INTEL 硬浮点的DS ...

  3. Intel FPGA Clock Region概念以及用法

    目录 Intel FPGA 的Clock Region概念 Intel 不同系列FPGA 的Clock Region 1. Clock Region Assignments in Intel Stra ...

  4. OpenCL设计优化(基于Intel FPGA SDK for OpenCL)

    1.首先了解Intel FPGA SDK for OpenCL实现OpenCL的设计组件,包括: kernels, global memory interconnect, local memory, ...

  5. Intel FPGA 专用时钟引脚是否可以用作普通输入,输出或双向IO使用?

    原创 by DeeZeng FPGA 的 CLK pin 是否可以用作普通输入 ,输出或双向IO 使用?    这些专用Clock input pin 是否可以当作 inout用,需要看FPGA是否支 ...

  6. intel FPGA使用

    https://www.altera.com/documentation/swn1503506366945.html https://files.cnblogs.com/files/shaohef/o ...

  7. intel FPGA CLKn pin 是否能直接进PLL?

    原创 by DeeZeng FPGA的时钟需要从专用的时钟管脚输入,那CLKn 作为Single-End时钟pin时是否能直接进 PLL呢? 通过查看对应FPGA型号的手册,得出以下结论 1. Cyc ...

  8. 基于FPGA的DDS设计(一)

    最近在学习基于FPGA的DDS设计,借此机会把学习过程记录下来,当作自己的学习笔记也希望能够帮助到学习DDS的小伙伴. DDS(Direct Digital Synthesizer)直接数字合成器,这 ...

  9. 如何保证FPGA PCIe唤醒能满足PC的100ms 的时间要求(Autonomous Mode)?

    原创By DeeZeng [ Intel FPGA笔记 ]  PC 需要PCIe设备在 100ms 内启动,这样PC 才能扫描到PCIe 设备.对于 FPGA PCIe 板卡,同样也需要满足这个时间要 ...

  10. [RAM] FPGA的学习笔记——RAM

    1.RAM——随机存取存储器, 分为SRAM和DRAM. SRAM:存和取得速度快,操作简单.然而,成本高,很难做到很大.FPGA的片内存储器,就是一种SRAM,用来存放程序,以及程序执行过程中,产生 ...

随机推荐

  1. Python学习---抽屉框架分析[点赞功能/文件上传分析]0317

    点赞功能分析 前台传递过来新闻id[new_id]和session[session内有用户ID和用户之间的信息]到后台 后台News数据库内用户和新闻是多对多的关系,查看第三张表中的内容,判读用户Id ...

  2. codeforces 17C Balance(动态规划)

    codeforces 17C Balance 题意 给定一个串,字符集{'a', 'b', 'c'},操作是:选定相邻的两个字符,把其中一个变成另一个.可以做0次或者多次,问最后可以生成多少种,使得任 ...

  3. Hive分区表创建,增加及删除

    1.创建Hive分区表,按字段分区 CREATE TABLE test1 ( id bigint , create_time timestamp , user_id string) partition ...

  4. D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...

  5. [Python web开发] 路由实现 (三)

    一.路由 1.1 什么是路由 简单说,就是路怎么走.就是按照不同的路径分发数据. URL就是不同资源的路径,不同路径应该对应不同的应用程序来处理. 所以,代码中要增加对路径的分支处理. 一个简单的路由 ...

  6. Python 模块化 from .. import 语句资源搜索顺序 (三)

    接着上一篇文章最后的import子句资源搜索顺序,我们来写几个例子了解下. 例一. #test1.py x = 123 #test.py import test1 print(dir()) print ...

  7. 20165302 实验一 java开发环境的熟悉

    20165302实验一 java开发环境的熟悉 一,实验内容与步骤 1.命令行下java程序开发 ①待编译运行代码 package csj; import java.util.Scanner; pub ...

  8. Java Calendar and SimpleDateFormat 时间模块

    package UtilTest; import java.util.Calendar; import java.text.SimpleDateFormat; import org.apache.co ...

  9. Redis(四)持久化

    本文转载自编程迷思,原文链接 深入学习Redis(2):持久化 前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化.复制(及读写分离).哨 ...

  10. UVA - 1197 (简单并查集计数)

    Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...