Xilinx SoC FPGA
文章平均质量分 60
XILINX FPGA 和SoC使用过程中的相关知识和经验
liuchj04
这个作者很懒,什么都没留下…
展开
-
【vivado】ila观测信号被拆分问题
在FPGA中用ILA观测设计中的信号时,有时一些多比特信号会被拆分成一些零散的信号,这会增大信号观测的难度。这一问题的产生与vivado的综合工具有关,viavdo在综合时会对一些逻辑信号进行优化、重命名等操作,从而导致信号被拆分。原创 2024-07-28 11:27:00 · 1460 阅读 · 0 评论 -
【vivado】 管脚约束(io constraints)
在FPGA工程中,所有的输入输出端口最终都要与FPGA IO 引脚进行绑定,需要根据需求对输入输出端口进行位置、电平标准、端口变换速率等进行约束,本文对io相关约束语法含义进行记录以便查询。原创 2024-07-14 15:52:28 · 625 阅读 · 0 评论 -
【vivado】 IBERT GT收发器误码率测试
协议是线速/数据宽度/参考时钟速率的组合。一个 IBERT 内核最多可以定义三个协议,并且可以将任意数量的可用 Quad 指定为定义的任何协议。Silicon Version:选择“常规 ES/产品”或“初始 ES”按钮以匹配目标芯片,这两者的区别暂时还没弄清楚,一般来说使用过程中默认选第一个。Number of Protocols:选择协议的数量, 一个IBERT 最多可定义三个协议。Protocol:在Protocol框中,选择自定义(custom)或其他预定义协议。原创 2024-05-14 21:58:51 · 2527 阅读 · 0 评论 -
【vivado】debug相关时钟及其约束关系
在xilinx fpga的degug过程中,经常出现由于时钟不对而导致的观测波形失败,要想能够解决这些问题需要了解其debug的组成环境以及之间的数据流。本文主要介绍debug过程中需要的时钟及各时钟之间的关系。原创 2024-05-10 21:34:40 · 2516 阅读 · 0 评论 -
【ZYNQ】zynq启动模式及程序固化
由于zynq含有arm cpu ,其启动模式由ps主导,与纯逻辑的fpga不相同,此处做一个记录。原创 2024-04-25 22:20:51 · 890 阅读 · 0 评论 -
【vivado】vivado导出hardware问题
答案:出现这个问题的原因是需要导出的block design 不在顶层或者不报包含在顶层文件中。解决办法也很简单,如果实际设计只需要block design,则将其直接右键set as top即可;如果还有其他PL逻辑,则将block design 例化到顶层模块当中去。问题:Cannot write hardware definition file as there are no IPI block design hardware handoff files present.原创 2024-04-25 21:07:19 · 1058 阅读 · 0 评论 -
xilinx fpga 程序固化(含sdk)
xilinx 旗下的产品主要有包含有处理器的系列,也有只有纯逻辑的fpga,两者的程序固化的方法并不相同,本文介绍含有处理器或者microblaze中有程序的固化。原创 2024-04-09 22:29:14 · 1262 阅读 · 0 评论 -
xilinx 7系列fpga上电配置
Xilinx FPGA通过加载比特流到内部存储单元来进行配置。Xilinx FPGA存在两种数据配置路径,一种是满足最小引脚需求的串行路径,一种是可用8位、16位或32位来连接到行业的高性能通用接口,如处理器,8位或者16位并行的闪存。与处理器和处理器外围设备一样, FPGA可以在系统中按需无限次重新编程。由于Xilinx FPGA 配置数据存储在 CMOS 配置锁存器 (CCL) 中,因此必须在断电后重新配置。比特流每次都通过特殊的配置引脚加载到器件中。原创 2024-04-07 20:59:02 · 2000 阅读 · 0 评论 -
xilinx fpga程序固化(不含sdk)
xilinx 旗下的产品主要有包含有处理器的SOC系列,也有只有纯逻辑的fpga,两者的程序固化的方法并不相同,本文介绍只包含纯逻辑而不涉及处理器的fpga的代码固化。将工程综合,实现,并得到比特流后,开始固化程序到片外非易失性存储器中。2.2 将存储器配置文件固化到flash。2.1 生成*.mcs存储器配置文件。原创 2024-04-02 22:30:37 · 1079 阅读 · 1 评论 -
【vivado】ILA使用心得
ILA抓取的信号数量和深度应尽可能的少,如无必要,不要加到ILA中观测。ILA主要用于验证,而不要主要用于debug。原创 2024-03-28 19:22:04 · 177 阅读 · 0 评论 -
【vivado】在原有工程上新建工程
该方法的缺点为:新工程只有工程文件夹及vivado自动生成的一级目录及其子目录的文件夹。至于自己新建的与一级目录并列的其他文件目录及其子目录则不会被带到新工程文件路径中,而是索引的原工程下的文件。在工作中,我们经常需要接触到别人的工程,并在别人的工程上新加设计功能,此时我们需要以别人工程为基础新建工程。该方法的优点为:可以直接修改整个工程及工程子目录的文件路径名称为新的工程名,并且可以自由选择位置。该方法的缺点为:所有的一级目录与原工程完全相同,若修改的话需要一个一个修改,也很麻烦。原创 2024-03-27 21:04:45 · 757 阅读 · 0 评论 -
verilog设计-CDC:单bit脉冲快时钟域到慢时钟域
当单bit信号由快时钟域传递给慢时钟域时,快时钟域的异步信号最小可为快时钟信号的一个时钟周期脉冲,快时钟域的单时钟周期脉冲长度小于慢时钟域的时钟周期,很有可能该脉冲信号在慢时钟域的两个时钟上升沿之间,导致该脉冲没有被慢时钟域采集到,从而导致信号数据丢失。因此与单bit信号从慢时钟域到快时钟域直接打两拍不同,单bit信号从快时钟域到慢时钟域还需要特殊的处理。原创 2024-03-21 23:25:54 · 1204 阅读 · 0 评论 -
【vivado】ILA使用
4)ILA信号过多影响时序收敛,甚至影响设计功能,比如JESD204204B协议恢复时钟驱动的很多信号被添加到ILA中观测后可能会导致建链不稳定。使用ILA IP核或者在相应信号或者端口前添加(* mark_debug = "true" *)后实现相应波形观测。3) 如果需要新加debug信号,需要重新做ILA,再Place&Route,费时费力;虽然ILA在一些情况下比较好用,但不建议靠ILA来debug。1) ILA分析的波形长度有限;2) ILA抓取的信号数量有限;原创 2024-03-19 22:04:31 · 1018 阅读 · 0 评论 -
【vivado】时序约束-set_false_path
false path指逻辑上存在,但不需要分析是否满足建立/保持时间的时序路径。使用set_false_path去不对指定路径其进行任何时序约束,进而在时序报告中屏蔽相关错误,但不会停止对其进行延迟计算,因为这条false path上的组合逻辑可能应用于其他的path。这一点区别于set_disable_timing,set_disable_timing完全不对路径做任何时序分析。原创 2024-03-18 23:29:44 · 2621 阅读 · 0 评论 -
【vivado】fpga时钟信号引入
如果设计时管脚分配没做好、或者管脚不够用了,那么就有可能将本该接入专用时钟管脚的信号,接到了普通IO口上,如果仅和从专用时钟引脚一样添加普通时钟约束时,此时vivado执行implement的时候往往就会报error或者critical warning、导致工程出现问题。FPGA的时钟信号一般由板上晶振经由时钟引脚引入,有时由于工程需要也会从pin脚引入其他外部时钟,这时为了该时钟能够正常工作,满足xilinx fpga的外部时钟引入规则。一、从专用的MRCC/SRCC时钟引脚引入。原创 2024-03-15 23:53:07 · 1066 阅读 · 0 评论 -
【vivado】 clock wizard 时钟IP
原因如下:与PLL输出时钟驱动的逻辑单元需要保持复位状态,直到PLL的LOCKED信号输出拉高为时,此刻表明时钟被锁定,PLL处于稳定的状态,因此LOCKED在设计常会用作复位信号。MMCM和PLL是在FPGA设计中不可避免需要使用到的时钟资源,对于其功能及使用方法的理解是正确进行FPGA设计的前提。clk_in 输入时钟,一般为班上晶振引入时钟或者serdes恢复时钟以及其他专用时钟引脚输入时钟;时钟IP会自动在综合实现中生成相应的时钟约束,因此不需要在约束文件中在对相关时钟进行时钟约束。原创 2024-03-12 21:48:17 · 2344 阅读 · 0 评论 -
【Xilinx sdk】sdk中hw_platform自动增加的问题
在 Vivado 中生成并导出硬件描述后,复制工程或工程更改有时候会在 .sdk 文件夹下产生新的 hw_platform,例如原来的是 hw_platform_0,现在又产生了一个 hw_platform_1,hw_platform_2等。(1)关闭 Xilinx SDK 的情况下,备份 sdk 文件夹中的源文件,清空整个 sdk 文件夹,重新 launch sdk,再将源文件复制到工程目录下;Xilinx employee 给出的答案,并不能更改 BSP 的 Hardware Platform。原创 2024-02-26 22:22:28 · 899 阅读 · 0 评论 -
【Xilinx FPGA】IO命名规则
首先,FPGA的IO物理命名规则,也就是我们做管脚约束时候的命名,芯片通常是长方体或者正方体,所以命名通常采用字母+数字组合的方式,从上到下是字母(A,B,C,D```),从左到右是数字(1,2,3```),所以诸如:A13(见下图),就是图上标红的位置,这个是xilinx的一颗芯片示意图,其它厂商的FPGA芯片也类似。工程师都是写代码,但是作为硬件编程工程师,如果不熟悉FPGA的底层资源和架构,是很难写出高质量的代码——至少很难写出复杂逻辑的高质量代码,也很难站在系统的层面去考虑芯片的选型等问题。转载 2024-02-21 22:39:59 · 280 阅读 · 0 评论 -
【JESD204B】一直建链断链的一个原因
JESD204B后面信号添加太多MARK_DEBUG时,也会导致建链不成功。原创 2024-02-20 21:40:10 · 664 阅读 · 0 评论 -
Xilinx SDK基本介绍
1.Skip All Breakpoints : 将所有断点设置为被跳过的,设置了Skip All Breakpoints之后,所有断点上都会有一个斜线,表示断点将被跳过,线程不会在该断点处被挂起。2.Resume:恢复暂停的线程,直接从当前位置跳到下一个断点位置。3.Suspend:暂停选定的线程,这个时候可以进行浏览或者修改代码,检查数据等。4.Terminate : Eclipse通过Terminate命令终止对本地程序的调试。原创 2023-11-19 19:20:50 · 1733 阅读 · 0 评论 -
vivado--调试工具介绍
VIO输出用来驱动信号, 它在调试的过程中来模拟外设对设计进行驱动,VIO的信号驱动功能类似于我们在设计时用一个拨动开关来控制FPGA上电路,VIO的输出主要用作低速控制信号, 不适合(速度达不到)用来输出高速数据信号,可以把它理解为虚拟的PCB上的拨动开关+LED (从性能上也停留在开关和LED层面)。从时钟而言,JTAG的时钟用在JTAG和Debug Hub通信,Debug Hub的时钟用在Debug Hub和Debug Core之间的通信,而各个Debug Core的时钟则用在采样需要监测的信号。原创 2023-09-04 22:06:15 · 1145 阅读 · 1 评论 -
不定态与高阻态,及modelsim默认波形颜色的含义
数字电路只有高低电平,没有实际电平对应不定态和高阻态,X和Z更多的是用来表示设计者的意图或者用于仿真目的,旨在告诉仿真器和综合器如何解释这段代码。X态:常用于判断条件,只在告诉综合工具设计者不关心它的电平是多少,是0是1都可以。仿真的过程中有些信号产生了不定态(modelsim 默认红色波形为不定态),设计者需要判定这个不定态是不是合理的。如果真的不关心是0还是1,可以不解决。但建议所有信号都不应该处于不定态,写清楚是0还是1,不给设计添加“思考”的麻烦。Z态:表示设计者不驱动这个信号(既不给0也不给原创 2020-11-10 09:06:10 · 5610 阅读 · 0 评论