FPGA
@vi_v587
每一天,都对自己昨天写的程序嗤之以鼻。
展开
-
FPGA重要设计思想
https://www.cnblogs.com/BruceLone/p/5366216.html转载 2020-05-23 10:25:39 · 370 阅读 · 0 评论 -
FPGA的全局复位网络
之前在写FPGA模块的时候总是习惯性地加上复位,现在看来这并不是一个好习惯。WP272在Xilinx FPGA中实现的设计不需要插入全局复位网络,对于绝大多数设计而言,配置后所有触发器和RAM的初始化状态比任何逻辑复位都要全面。因为没有任何未定义的内容,所以没有必要为仿真插入复位。应识别必须真正复位的系统的关键部分,并且必须像在同步电路中的任何其他信号一样仔细地控制在启动或运行期间的那...原创 2018-12-08 10:18:48 · 968 阅读 · 0 评论 -
关键路径逻辑和非关键路径逻辑放在不同模块
模块划分时,要将关键路径逻辑和非关键路径逻辑放在不同模块,这样在 综合时就可以对含有关键路径的模块做速度优化,而对含有非关键路径的模块做面积优化,而如果把它们都放到同一模块里,就不能对它们使用不同的综合策略。模块划分时,要将相关的组合逻辑放在同一模块,这样在综合时可以对其进行优化,因为综合工具通常不越过模块的边界来优化逻辑。...转载 2019-01-29 11:14:59 · 830 阅读 · 0 评论 -
分布式RAM有比BLOCK RAM更好的时序性能
RT原创 2019-03-19 15:08:38 · 873 阅读 · 0 评论 -
uart、i2c、spi
uart i2c spi 接口 2 分别是TX和RX 2 分别是SCL和SDA 4+ 分别是SS、SCLK、MOSI和MISO 同步 不传时钟,异步 同步 同步 主从模式 点对点 主从模式,从机地址由SDA传输 主从模式,从机由SS选通 ...原创 2019-03-21 21:31:58 · 238 阅读 · 0 评论 -
静态时序分析
常用的静态时序分析结构图:时序图如下:红色虚线之间的是建立时间和保持时间,在这段时间内数据应保持稳定不变。其中clk1是前一级触发器的时钟,clk2是后一级触发器的时钟。clk2相对于clk1存在一定的偏斜Tclk_skew。我们在在后一级触发器的第一个时钟上升沿分析保持时间,在后一级触发器的第二个时钟上升沿分析建立时间。首先来分析建立时间。事件1到事件2之间的时间为T...原创 2019-03-22 11:35:19 · 555 阅读 · 0 评论 -
m序列反馈系数
原创 2019-03-23 09:21:40 · 6318 阅读 · 0 评论 -
线性反馈移位寄存器(LFSR)实现
转:https://blog.csdn.net/u014395662/article/details/79315037/http://m.elecfans.com/article/606437.html线性反馈移位寄存器 = 移位寄存器 + 组合逻辑反馈●用处:产生伪随机序列、数据压缩、计数器、数据编码解码等等●好处:具有速度和面积优势 ●特点: ★产生伪...转载 2019-03-23 16:33:36 · 8083 阅读 · 0 评论 -
从D触发器说明建立时间和保持时间
原文:http://www.cnblogs.com/zhtxwd/archive/2011/12/31/2309176.htmlD触发器:工作原理:~SD和~RD为触发器的异步置0、置1端。它们不受时钟信号的控制,一旦有效,触发器马上被强迫置0或置1,正常工作时,~SD和~RD均处于高电平状态。下面分析异步置0、置1输入无效时,电路的工作情况。1. 在CLK=0期间,触发器...转载 2019-03-27 10:30:05 · 7578 阅读 · 0 评论 -
异步复位,同步释放
对于复位情况下的亚稳态,常常是由于恢复时间(Recovery Time)和移除时间(Removal Time)不满足造成的。最常用的处理方式是采用异步复位,同步释放。采用第二级寄存器输出作为全局复位信号输出,模块如下:module rst( input I_Clk, input I_Rst_n, //异步复位输入 output O_Sys_Rst_n //异步复位,同...原创 2019-03-27 16:08:40 · 364 阅读 · 0 评论 -
线性相位
https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E7%9B%B8%E4%BD%8D/360642?fr=aladdinhttps://wenku.baidu.com/view/73e9ace559f5f61fb7360b4c2e3f5727a5e92474.htmlhttps://blog.csdn.net/tommy1295/article...转载 2019-03-27 19:44:30 · 5631 阅读 · 0 评论 -
关于全局时钟引脚和局部时钟引脚以及BUFG和BUFR
Place:645 - A clock IOB clock component is not placed at an optimal clock IOB site. The clock IOB component <I_Ad9783_8_Dco_p> is placed at site <AY35>. The clock IO site can use the fast ...原创 2019-03-28 16:14:20 · 7246 阅读 · 0 评论 -
名词解释
FPGA Field Programmable Gate ArrayISE Integrated Software EnvironmentEDK Embedded Development KitXPS Xilinx Platform StudioSDK Software Development KitBSB Base System BuliderELF File Execu...原创 2019-04-17 17:22:37 · 259 阅读 · 0 评论 -
FPGA中,避免使用latch的原因
1、锁存器容易产生毛刺2、锁存器在ASIC设计中应该说比ff要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和ff来组成锁存器,这样就浪费了资源。3、锁存器的出现使得静态时序分析变得更加复杂...原创 2019-04-29 10:52:00 · 1249 阅读 · 0 评论 -
组合逻辑电路&时序逻辑电路
逻辑电路根据是否包含记忆元件,分为组合逻辑电路和时序逻辑电路。组合逻辑电路不包含记忆元件,某时间点的输出(逻辑函数值)仅取决于当时的输入。含有记忆元件的逻辑电路被称为时序逻辑电路。在组合逻辑电路中,当前的输出只取决于当前的输入。而在时序逻辑电路中,只知道当前的输入并不足以确定当前的输出。也就是说,时序逻辑电路是一种过去的电路状态也会对输出产生影响的逻辑电路。时序逻辑电路分为同步时序逻辑电路和异...转载 2019-06-19 19:23:39 · 4444 阅读 · 0 评论 -
单个DSP48E实现MACC FIR
分为三个模块:control_logic、ramb18_wrapper、dsp48e_wrapper。control_logic主要实现对其他两个模块的控制操作,如地址生成、写使能控制、opmode转换等操作。ramb18_wrapper主要存放抽头系数和采样数据。dsp48e_wrapper主要进行乘累加操作。资源消耗如下: 最大频率可达500MHz。可对采样...原创 2018-11-28 20:35:16 · 805 阅读 · 0 评论 -
基于DSP48的FIR滤波器
UG073原创 2018-12-01 10:33:28 · 891 阅读 · 0 评论 -
FPGA两种实现除法的方法和一种实现平方根的方法
1、基于减法的除N / D = Q + R设N共M位。step1:将R各位置零,令n = 0。step2:将R左移一位,并将N[M-n]移入R的最低位。step3:R - D。step4:若R - D为正或零,令Q[M-n] = 1,R = R-D; 若R - D为负,令Q[M-n] = 0,R = R。step5:n++。step6:重复...原创 2018-12-07 09:27:00 · 4887 阅读 · 0 评论 -
verilog中if-else和case的比较
比较if-else_if-else和case:1、if(a==2'b00) 语句1; else if(a==2'b01) 语句2; else 语句3; case(a) 2'b00: 语句1; 2'b01: 语句2; default: 语句3; ...原创 2018-06-10 10:25:39 · 8887 阅读 · 0 评论 -
Xilinx 滤波器IP核输出有效位截取问题
Xilinx是按照如下公式给出输出位宽的:outputwidth = coefwidth + inputwidth + ceil(log2(tap))其中,outputwidth即为输出位宽,coefwidth为抽头系数位宽,inputwidth为输入位宽,tap为滤波器阶数,ceil为向上取整。有效位截取方法:如果输入信号是周期的,可以通过仿真来看输入信号通过滤波器得到的最大值占...原创 2018-09-06 15:52:48 · 5769 阅读 · 2 评论 -
关于ISE无法生成DDS IP核的问题
直接上error:"E:/*/ipcore_dir/tmp/./_cg/_dbg/./dds_compiler_v4_0/sin_cos.vhd" line 228: Real operand is not supported in this context.ERROR:sim -ERROR:sim - Process will terminate. For technical suppo...原创 2018-09-06 20:43:56 · 2114 阅读 · 0 评论 -
ModelSim导出数据至.txt文件
integer w_file; initial w_file = $fopen("E:/***/data.txt"); always@(i) begin $fdisplay(w_file,"%d",$signed(w_lfm_data)); if(i==1200) $fclose(w_file); en...原创 2018-09-06 21:49:40 · 6537 阅读 · 3 评论 -
Xilinx PLL(Virtex-5)
1. 概述1.1 CMTXilinx Virtex-5 FPGA根据不同型号分别有1、2、6个时钟管理片(Clock Management Tile,CMT),每个CMT由一个PLL和两个DCM组成。CMT包含专有路由来连接同一个CMT中的DCM和PLL,使用专有路由可以改进时钟路径。CMT如下图: 1.2 PLLPLL框图如下图:PLL时钟输入来源为:IBUFG、...原创 2018-09-26 16:04:58 · 3200 阅读 · 0 评论 -
Xilinx CMT(Virtex-5)
Xilinx Virtex-5 FPGA根据不同型号分别有1、2、6个时钟管理片(Clock Management Tile,CMT),每个CMT由一个PLL和两个DCM组成。CMT包含专有路由来连接同一个CMT中的DCM和PLL,使用专有路由可以改进时钟路径。CMT如下图:下图显示了中心列资源简化视图:在XC5VFX200T中,有6个CMT,Top Half和Bottom Hal...原创 2018-09-26 16:53:48 · 943 阅读 · 0 评论 -
case条件为高阻状态或不确定状态时的输出
case(din) 2'b00: dout <= 2'b00; 2'b01: dout <= 2'b01; default: dout <= 2'b11;endcase在always@(posedge clk)块中,当din为2'bxx时,dout输出值为2'b11。如图:注意:modelsim仿真在最开始处,rst_n有一个下降沿(r...原创 2018-10-12 16:55:15 · 1217 阅读 · 0 评论 -
RRU射频拉远单元
在大型通信系统设备中,如3G/4G无线基站中的RRU(Radio Remote Unit)和BBU(Base Band Unit),FPGA担当了重要的角色。以RRU为例,其全称是射频拉远单元,FPGA在该设备里主要实现4个关键功能:1、发射链路处理:把数字基带信号进行上变频(Digital Up Conversion)、波峰因子降低(Crest Factor Reduction)以及数字预失...转载 2018-10-12 21:15:35 · 7266 阅读 · 0 评论 -
Xilinx DCM(Virtex-5)
1. 概述Virtex-5 FPGA中的数字时钟管理器(Digital Clock Managers,DCM)提供了广泛而又强大时钟管理功能,如时钟偏移校正(Clock Deskew)、频率合成(Frequency Synthesis)、相移(Phase Shifting)、动态重配置(Dynamic Reconfiguration)。1.1 时钟偏移校正DCM包含一个延迟锁定环(DL...原创 2018-09-28 22:29:25 · 7408 阅读 · 2 评论 -
FPGA 乒乓操作
https://blog.csdn.net/Times_poem/article/details/51398468?locationNum=6http://xilinx.eetop.cn/?action-viewthread-tid-483918转载 2018-10-08 11:41:24 · 845 阅读 · 0 评论 -
Verilog 有符号数与操作符运算
本来以为算术右移">>>"一定会保留符号位的,但今天用modelsim仿真时遇到一个很奇怪的问题。算术右移有时会保留符号位,但有时却补零,具体何时会出现哪种情况没仔细研究过。解决办法:当用到算术右移时,将操作数定义为有符号数。对于使用其他操作符运算时,同样如此。在看了Verilog标准后发现:有两种移位操作,逻辑移位(>> and <<...原创 2018-10-26 17:04:42 · 1371 阅读 · 0 评论 -
Verilog Operators
以virtex-5为例。Operators(操作符)分为 Arithmetic、Bitwise、Logical、Replicate/Concatenate、Shift、Unary Reduction。1、Arithmetic// The following are the arithmetic operators as defined by the Verilog language....原创 2018-11-22 16:37:03 · 2012 阅读 · 0 评论 -
两种并行结构的FIR
Transposed FIR:该结构优点为Low Latency,从图中可以看出,latency为3个时钟周期。但当抽头数比较多时,该结构输入的采样信号扇出很大,高扇出会导致NET delay较大,不利于时序收敛。Systolic FIR:由于输入采样信号扇出小,因而该结构能达到最佳的性能。当阶数大于一列中DSP48E个数时,性能会受路由限制。但该结构latency比较大,阶数...原创 2018-11-29 20:39:47 · 1154 阅读 · 0 评论 -
always块的形式与综合结果
fdc:带有异步复位,不带使能端(使能不有效时输出保持不变,即使能的else语句中值保持不变,否则不会综合为使能)always@(posedge I_Clk or negedge I_Rst_n)begin if(~I_Rst_n) O_Dout <= 1'b0; else O_Dout <= I_Din;endalways...原创 2018-11-28 10:10:07 · 949 阅读 · 0 评论 -
阻塞非阻塞
阻塞和非阻塞阻塞: = 可用在assign语句和always语句中, 表示只要源信号发生变化,目标信号就立刻完成赋值操作, 在always块中,结果与语句顺序有关, 在always块中是顺序关系非阻塞: <= 只能用在always语句中, 表示该语句结束时完成赋值操作, 结果与语句顺序无关, 并行关系 可以这样理解:阻塞赋值,进程会阻塞在...原创 2018-06-08 15:53:01 · 395 阅读 · 0 评论