
fpga
文章平均质量分 70
拉钩上吊一百年
这个作者很懒,什么都没留下…
展开
-
在vivado中使用tcl脚本(UG894)
本文源自UG894,主要介绍如何在vivado中使用tcl脚本1.vivado中如何获取tcl helpvivado中任何自带的命令都可以通过“-help”获取帮助信息。也可以直接输入“help”取得vivado命令合集,并通过“help -category (tools)”来获取某类操作的所有命令简介。2.工程模式下编译和报告示例脚本该过程可以通过运行GUI vivado自动产生的记录文件vivado.jou查看,该文件中记录了自打开vivado后运行的所有命令。1.通过create_proj原创 2022-02-05 22:05:47 · 14827 阅读 · 1 评论 -
Tcl脚本学习
包的创建和调用在tcl脚本中,我们可以通过创建和调用包来增强代码的可复用性。创建包的步骤:1.在包脚本文件中,首先声明“package provide”,标识当前文件提供了一个包。之后在该文件中完成包的内容2.通过pkg_mkIndex命令创建pkgIndex.tcl文件,在包所在路径中声明所包含包的名字和版本。3.通过在auto_path 变量增加包路径,告诉tcl编译器哪里可以找到包。调用包的步骤:1.通过package require声明当前脚本需要哪些包。类似于c语言调用头文件。#原创 2022-01-31 15:14:18 · 1342 阅读 · 0 评论 -
verilog除法器设计
除法器原理和十进制除法类似,计算 27 除以 5 的过程如下所示:除法运算过程如下:(1) 取被除数的高几位数据,位宽和除数相同(实例中是 3bit 数据)。(2) 将被除数高位数据与除数作比较,如果前者不小于后者,则可得到对应位的商为 1,两者做差得到第一步的余数;否则得到对应的商为 0,将前者直接作为余数。(3) 将上一步中的余数与被除数剩余最高位 1bit 数据拼接成新的数据,然后再和除数做比较。可以得到新的商和余数。(4) 重复过程 (3),直到被除数最低位数据也参与计算。需要说明的原创 2021-11-24 22:02:56 · 2507 阅读 · 2 评论 -
FPGA复位
1.同步复位always@(posedge clk) begin if(!rstn) q <= 1'b0; else q <= d;end优点:1.保证电路100%复位。2.只在时钟边沿检测,可过滤一些毛刺;对于一些复位由组合逻辑产生的电路,建议使用同步复位。缺点:1.对于一些没有同步复位接口的寄存器,同步复位信号会与数据信号相与之后接入触发器d端口,导致数据流逻辑不纯净,在一些时序较紧的设计中可能会导致时序违例。2.如果ASIC/FPGA具有内部三态总线,则导致复位原创 2021-07-17 16:38:48 · 293 阅读 · 0 评论 -
vivado时序分析
vivado时序分析1.Tsu问题常见原因及解决方法1.1 组合逻辑过于庞大复杂组合逻辑过大时会增加信号的到达时间。解决方式:1.如果设计允许,可以添加多周期路径。2.添加流水线寄存器,切分组合逻辑,降低延迟。3.优化组合逻辑,减小时延。1.2 扇出过大降低扇出最好不要在综合设置中指定,过低的扇出限制会造成设计堵塞反而不利于时序收敛,最好的方法是根据设计中时序最差路径的扇出进行针对性的优化。解决方式:1.寄存器复制通过复制几个相同的寄存器来分担由原先一个寄存器驱动所有模块的任务,继原创 2021-07-15 11:22:39 · 4247 阅读 · 0 评论 -
vivado时序约束
1.时钟周期约束基础时钟周期为10ns的基础时钟create_clock -period 10 [get_ports sys_clk]生成时钟生成时钟为通过组合逻辑自己生成的时钟驱动。(MMCM、PLL、BUFR输出的时钟不是生成时钟,vivado会自动识别,不需要额外约束)。如图是经典二分频生成时钟,其输出的时钟约束应当为:create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2 [get_pi原创 2021-07-01 22:19:31 · 9907 阅读 · 0 评论