- 博客(20)
- 收藏
- 关注
原创 优化布线拥塞
Note:文章内容以 Xilinx 系列 FPGA 进行讲解随着设计规模的增大和复杂度的提升,布线拥塞成为常见的问题,尤其是在用UltraScale FPGA或UltraScale + FPGA时,布线拥塞往往成为时序收敛的瓶颈,也成为编译时间过长的“罪魁祸首”。
2024-11-09 17:54:39
1735
原创 安全的时钟启动
通常情况下,在MMCM/PLL的LOCKED信号抬高之后(由0变为1),MMCM/PLL就处于锁定状态,输出时钟已保持稳定。但在此之前,输出时钟会发生持续翻转且不稳定。而在某些场合下,需要LOCKED信号为1之后才发生时钟翻转,这就是所谓的安全启动时钟。
2024-11-09 00:29:36
1269
原创 优化时钟网络之时钟抖动
时钟抖动就是时钟周期之间出现的偏差。比如一个时钟周期为10ns的时钟,理想情况下,其上升沿会出现在0ns,10ns,20ns···时刻,假设某个上升沿出现的时刻为30ns,那么下一个上升沿出现的时刻应该为40ns。但是实际上下一个上升沿出现的时刻可能是40.1ns或39.9ns。那么这个0.1ns的偏差就称为时钟抖动。如下图所示:时钟抖动是在时钟发生器内部产生的,和晶振或MMCM/PLL内部电路有关,布线对其没有影响。
2024-11-07 23:35:33
1076
原创 优化时钟网络之时钟偏移
所谓时钟偏移(Clock Skew),是指在同步时序电路中,同一个时钟信号到达各个寄存器时钟端口的时间不一致的现象。如下图所示:时钟从源端到达寄存器FF1的时间点为Tclk1,到达寄存器FF2的时间点为Tclk2,因此时间偏移为Tclk2与Tclk1的差。若clk源端记为零时刻点,那么Tclk1和Tclk2分别对应发送时钟路径延迟和捕获时钟路径延迟。时钟偏移可正可负。通常,若数据流向与时钟前进方向相同,则时钟偏移为正;若数据流向与时钟前进方向相反,则时钟偏移为负。
2024-11-06 23:23:17
1355
原创 Vivado的模块化综合技术
vivado的一些综合选项和综合策略都是全局的,一旦启用,都是针对设计中的所有模块,但是某些选项可能对设计中的某些模块并不合适,所以为了实现对模块的差异化处理,vivado提供了模块化综合技术。使用该技术,可以更加细粒度的管理每个模块,加速时序收敛。例如,针对模块uart_rx_inst(实例化名字),设置RETIMING = 4,MAX_LUT_INPUT = 4(不允许工具推断出LUT5和LUT6),则该模块下的。例如,对模块uart_inst单独设置综合选项,如下图所示。2、模块化综合技术的选项是。
2024-10-28 22:04:04
1073
原创 Vivado如何关联Modelsim进行仿真
编译Xilinx有关IP的库,这样我们在仿真一些带有Xilinx ip核的工程时才不会报错,当然如果仿真的全是Verilog或者VHDL文件,可以直接将文件添加到Modelsim中进行仿真,不需要编译ip库。因为我们用Vivado关联Modelsim进行仿真,为了以后方便,先编译Xilinx ip核的库文件。肯定选择ModelSim Simulator,因为我们就是准备用modelsim仿真的;
2024-04-02 22:28:10
4984
5
原创 常用编译预处理语句
用一个指定的标识符(即名字)来代替一个字符串,它的一般形式为:`define 标识符(宏名) 字符串(宏内容),例如:`define pi 3.1415926。宏名可以用大写字母表示,也可以用小写字母表示。建议使用大写字母,以与变量名相区别。`define命令块可以出现在模块定义里面,也可以出现在模块定义后面。宏名的有效范围为定义命令之后到原文件结束。通常,`define命令写在模块定义的外面,作为程序的一部分,在此程序内有效。
2023-11-12 15:36:19
135
1
原创 FPGA设计的四大基本原则
FPGA设计采用的主要编程语言是VHDL、Verilog、SystemVerilog,三者都是硬件描述语言(Hardware Description Language,HDL),其中SystemVerilog因其在验证方面显示的强大功能又被称为硬件描述与验证语言(Hardware Description and Verification Language,HDVL)。硬件描述语言,顾名思义,其描述对象是硬件电路,是实实在在存在的硬件电路。
2023-10-15 16:15:42
480
1
原创 CameraLink协议
Camera Link是一个用于视觉应用的通信接口。该接口扩展了德州仪器(原National Semiconductor) Channel Link的基础技术,为视觉应用提供了更有用的规范。多年来,科学和工业数字视频市场缺乏一种标准的通信和数据传输方法。图像采集卡和相机制造商都开发了带有不同连接器的产品,这使得制造商的电缆生产变得困难,消费者也非常困惑。Camera Link 1.2及其之前的版本提供了一个非常有用的数字相机和图像采集卡之间的连接标准,为机器视觉社区提供了重要的价值。
2023-10-08 22:23:33
2071
1
原创 Verilog中Generate语句的使用
Generate语句又称为生成语句,可以动态地生成Verilog代码,是Verilog-2001从VHDL借鉴而来。这一声明语句方便了参数化模块化的生成。例如:(1)当对矢量中的多个位进行重复操作时;(2)当进行多个模块的实例引用的重复操作时;(3)在根据参数的定义来确定程序中是否应该包括某段Verilog代码时。使用生成语句能够大大简化程序的编写过程。生成语句能够控制变量的声明、任务或函数的调用,还能对实例引用进行全面的控制。
2023-10-06 00:26:31
1143
1
原创 深入理解阻塞和非阻塞赋值的不同
阻塞赋值操作符用等号(即 = )表示。为什么称这种赋值为阻塞赋值呢?这是因为在赋值时先计算等号右手方向(RHS)部分的值,只是赋值语句不允许任何别的Verilog语句的干扰,直到现行的赋值完成时刻,即把RHS赋值给LHS的时刻,它才允许别的赋值语句的执行。一般可综合的阻塞赋值操作在RHS不能设定有延迟的(即使是零延迟也不允许)。从理论上讲,它与后面的阻塞赋值只有概念上的先后,而无实质上的延迟。
2023-10-05 22:36:22
283
原创 Vivado中调用ISE生成的ngc的方法
这个source的路径也就是.tcl文件的绝对路径。只要安装了vivado,直接搜索tcl,便可以找到Vivado Tcl Shell,然后输入source C:/Users/PandaPi/Desktop/edif_gen.tcl回车即可。cd的路径是指包含所有要转换的ngc文件的文件夹的绝对路径。Tcl脚本文件的生成可以先用文本文件(.txt)进行编辑,然后修改文件格式后缀,即将后缀".txt"修改为".tcl"。生成的.edf文件在之前包含所有.ngc的文件夹中。
2023-09-15 22:59:59
1487
3
原创 Verilog中关于表达式计算的分析与总结
由前面的分析可知,在表达式中-32‘d12是失去作为符号负数的特性的,即它表示的是一个大的正数,所以intA的值为FFFF_FFF4,但同时intA为一个有符号数,所以intA将FFFF_FFF4转换为一个有符号数,所以有符号数intAFFFF_FFF4的原码为-12(除最高位符号位外,其它位取反然后加1),又因为表达式 regA = intA / 3,其中intA 和 3都是有符号数,所以结果为-12/3 = -4,表示为补码为FFFC。如果无符号数的位数大于size,那么就在左端截去多余的位。
2023-09-09 19:53:30
536
1
High Speed Serdes Devices and Applications .pdf
2023-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人