产生的二进制数为带符号二进制数,最高位是符号位. function [ DATA ] = cos_gen( Num_addr,Num_out ) % 用来产生ROM需要的余弦表,输出为有符号二进制数 % Num_addr:总的地址的数目,如:4096 % Num_out:输出的数据的总位数,包括符号位,如:12 Y=round((2^(Num_out-1)-1).*cos(0:pi*2/(Num_addr):2*pi)); for i = 1:1:Num_addr if(Y(i) < 0) Y(…
在FPGA 设计过程中经常会遇到关于数表示之间的转化问题,最常见的是无符号数和有符号数之间的转化问题.(1)在FPGA设计过程中,能够很直接的看出数字的位宽,但经常以无符号数的形式输出,在后继的处理中往往要将之转化为有符号数(如:计算频谱):对于一个比特宽度为W的有符号数,其值往往可以表示为(令W = 4): -1*b3*2^3  +  b2*2^2 +  b1*2^1 + b0*2^0根据这一原理,给出以下Matlab 代码:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%…
把看到的关于存储的一些东西整理一下,有些话来自于网友,所以还是那句话,看到的人要带着自己的思考去看,记住尽信书不如无书,fighting!!! 一.基本概念 最熟悉的两个词语应该是RAM与ROM,RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的.它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质,它的一切都是最好的,唯一缺点断电一切东西都没有了.一般情况下,现在移动设备也多了,我们叫它内存,更…
目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM).伪双端口RAM(Pseudo DPRAM).CAM(Content Addressable Memory).FIFO等常用存储结构.FPGA中其实并没有专用的ROM硬件资源,实现ROM的思路是对RAM赋予初值,并保持该初值.所谓CAM,即内容地址存储器.CAM这种存储器在其每个存储单元都包含了一个…
原文地址:(转)ISE中ROM初始化文件(.coe)的建立作者:老徐 UltraEdit 对于ROM模块,主要是生成相应的.coe文件. 1.在Matlab中生成正余弦波形的浮点值,并量化为16bit定点波形数值: % 生成 ROM 的 .coe文件 clc clear all close all x = linspace(0, pi/2 ,1024);     % 在区间[0,2pi]之间等间隔地取1024个点  y_cos = cos(x);  y_sin = sin(x);    y_co…
最近在玩Altera的FPGA,当我用Quartus II自带的IP核生成ROM时,出现了各种问题,于是在网上各种查资料,终于解决了我的问题.这里做一下小结,方便自己日后查阅. Quartus II 和ISE在仿真和初始化时有些些区别,这里简要介绍一下二者的初始化和仿真步骤:1.用Quartus II创建并仿真ROM Step1:在Quatus II工程下生成一个ROM Step2:编写.mif文件,作为ROM的初始化文件 Step3:将.mif文件拷贝到Modelsim工程下 Step4:进行…
fpga中的存储器三种:RAM,ROM,FIFO. RAM和ROM已经比较熟悉了,记录一下FIFO. FIFO:first in first out ,顺序存取,先入先出.是一种数据缓存器,用来作不同接口的缓冲地,其应用场景有: ① 不同时钟域:数据产生速率 与 数据使用速率 不相等,这个时候用FIFO来缓冲 ,数据量够了再发送. ② 不同位宽   :发送和接收数据的位宽不相等,这个时候用FIFO来缓存,位宽匹配了再发送. 注意:硬盘 ≠ ROM  ,但有关系 .硬盘是外部设备,ROM是内部设备…
delay和latency都有延迟的意义,在FPGA中二者又有具体的区别. latency出现在时序逻辑电路中,表示数据从输入到输出有效经过的时间,通常以时钟周期为单位. delay出现在组合逻辑电路.布线中,表示数据从一端到另一端经过的时间,通常以绝对时间衡量. 引起delay的有线延迟.门延迟等,通常是不希望出现的. latency和电路的逻辑设计有关,如果latency很大,通过提升工作的时钟频率,那么绝对的响应时间不会太长. 而delay很大,那么电路的工作频率会受限,从而影响电路的整体…
除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上来说只需要一条信道就足够了,而FPGA上实现这一功能的管脚就是inout端口.管脚相连时,input对应output,因此inout只能和inout连接(否则就不是inout了).本文将概述FPGA的inout端口. 1. 三态门 三态门,故名思议就是这个期间具有三种状态.对于数字电路来说,三种状态…
常用约束语句说明 关于Fmax      上述是实现Fmax的计算公式,clock skew delay的计算如下图, 就是两个时钟的差值.到头来,影响Fmax的值的大小就是组合逻辑,而Fmax是针对最差劲的节点给出的最高频率,而且Tsu会影响Fmax的大小. 那么提高Fmax可以通过两种方法解决:(1)将两个时序逻辑之间的大组合逻辑分为两个小的逻辑,即采用流水线设计方法 :(可以在组合逻辑的两端加上寄存器,这样可以增加时序余量) :(2)更改时序约束或者更改一些综合或者实现选项,让开发工具去解…