- 博客(70)
- 收藏
- 关注
原创 【vivado】IP核Jtag to AXI Master读写寄存器代码
【代码】【vivado】IP核Jtag to AXI Master读写寄存器代码。
2026-01-12 09:54:55
105
原创 【vivado】 ERROR: [Common 17-161] Invalid option value“specified for ‘object‘“.
删除ILA未连接的管脚,或者连接未连接的管脚。ILA的IP核存在未连接的input。
2025-12-31 10:06:30
194
原创 【Vitis】更新xsa的问题
xilinx家的vitis中,更新xsa不好使,导致更新之后相应的app文件那些基地址和地址分配无法生效。当需要更新xsa时,把硬件平台文件都删除再重新建立硬件平台。
2025-11-27 19:30:30
256
原创 【vivado】could not find arm device on the board for connection ‘local‘
在用zynq调试板卡时出现以下问题。解决办法:断电重新插拔Jtag。
2025-11-21 20:08:53
135
原创 【vivado】Vivado 版本降级的兼容性问题
将TCL中的ZYNQ的版本号改为适配2022的版本号,比如zynq在vivado2022中的版本号是3.4,在vivado2023中的版本号是3.5,因此需要改写这个数字。vivado 2022.2打开vivado工程2023.2版本,由于兼容性问题导致打不开。通过导出高版本的工程的TCL文件,再将TCL文件导入到低版本的vivado工程中。将TCL中的版本号由高版本改为低版本。将tcl导入到新的版本中。
2025-11-21 15:13:54
407
原创 【IP核 LOCKED】VIVADO IP核锁住的解决办法
打开IP核工程,勾选完整的Kintex、Zynq、Virtex系列。输入tcl指令:upgrade_ip [get_ips]由于工程更换芯片型号,导致IP核被锁住,如下图所示。
2025-11-14 15:45:35
223
原创 RAM带宽计算及分析
(例:DDR4-3200的物理时钟为1600MHz,有效频率为3200MT/s)突发长度(Burst Length):连续传输数据块的大小(BL=8为典型值)指RAM芯片与外部(如CPU/FPGA)连接的数据线数量(单位:位)FPGA片上BRAM:通常为16/32/64位(可配置)有效频率:6400 MT/s(DDR双沿 + 预取技术)效率因子:1.0(无刷新开销,随机访问延迟可隐藏)有效频率:3200 MT/s(因DDR双沿触发)位宽:72位(64位数据+8位ECC)
2025-07-09 18:14:04
1110
原创 【VHDL】 综合属性之状态机安全编码模式
FSM_SAFE_STATE 指示 Vivado 综合工具在状态机中插入额外逻辑,用于检测非法状态,并在下一个时钟周期将状态机恢复到一个已知的、正确的状态。例如:如果一个状态机采用 “one_hot” 编码,但当前状态为 0101(这对 one_hot 编码来说是非法状态),状态机可以自动检测并恢复。你可以在 RTL 代码或 XDC 约束文件中,将 FSM_SAFE_STATE 属性加在状态寄存器上。使用 Hamming-2 编码检测单比特错误,并强制状态机进入上电初始状态(Power-On 状态)。
2025-06-17 19:07:16
806
原创 【vivado】时序分析之Latch pins with no clock
查看代码中是否存在状态机的状态没有写全,或者default中直接写了null。vivado打开时序报告,如下图。表示存在锁存器Latch。
2025-06-17 16:47:52
338
原创 【Modelsim】warning:(vsim-WLF-5000) WLF file currently in use:vsim.wlf
Modelsim使用过程中遇到warning,如下图所示。把文件路径下所有这些带wlf的文件删除即可。
2025-02-18 20:45:50
438
原创 【verilog】函数clogb2的解读
rt = rt + 1):这是一个循环,它不断将 tmp 右移 1 位,直到 tmp 为 0。这个函数的意思是:这段代码实现了一个函数 clogb2,用于计算输入 value 的对数(以 2 为底的对数,通常用于计算值的二进制位宽)。rt = 0, tmp = 7,tmp 右移 1 位,tmp = 3,rt 加 1。rt = 1, tmp = 3,tmp 右移 1 位,tmp = 1,rt 加 1。rt = 2, tmp = 1,tmp 右移 1 位,tmp = 0,rt 加 1。
2025-02-14 20:31:09
532
原创 【Libero】IO问题:port name doesn‘t exist in the netlist
【Libero】IO问题:port name doesn’t exist in the netlist or is not connected to an IoCell macro at PDC Line。代码中未使用I2C_2_SDA-I2C_7_SDA,工程将这几个信号优化删除了,因此在IO_EDITOR界面没有这些管脚。导致布局布线的时候出错。查看代码是否写错,未使用这些被优化的信号。修改代码后即可出现这些管脚。
2025-02-14 16:31:31
440
原创 【Modelsim】medelsim查看仿真覆盖率的方法
如上图所示进行配置,在调用modelsim的时候就可以显示仿真覆盖率,如下图所示就是modesim的仿真覆盖率。最近做项目的时候需要对代码进行仿真覆盖率的分析,那么如何添加仿真覆盖率呢?
2025-02-12 17:55:49
614
1
原创 【vivado】vivado卸载不充分导致无法重新安装
查找C盘下的xilinx design tools,里面有关于vivado2015.4的文件夹,删除所有相关的文件夹,再重新安装。vivado2015.4卸载不充分。
2024-12-29 17:04:11
1747
原创 【 Synplify 三模冗余】 Synplify图形界面法实现三模冗余(TMR)
[在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a7767092d7d4452883bbfa88f4407136.png。
2024-12-16 18:58:16
596
原创 【Libero】libero工程查看FPGA资源用量方法和路径
/designer/xxx(工程名)/xxx_compile_netlist_resources.rpt。
2024-11-26 17:54:14
464
原创 【Libero】Microsemi License error:Feature has expired.
链接: https://pan.baidu.com/s/1eUFblwI3VslhVEL1W8-WXg 提取码: dcjh。1、管理员运行ChangeDiskId.exe,将C盘序列码改成0001-e867.通过网盘分享的文件:libero_license.zip。2、将flexlm文件夹拷贝到C盘根目录下。定位原因:License的问题。–来自百度网盘超级会员v2的分享。
2024-11-26 16:56:08
717
原创 xilinx FIFO写入数据和读取数据不一致问题
在使用xilinx 的官方IP-FIFO进行FPGA开发时,仿真发现FIFO写入和读取数据一致未出现问题。在烧写程序实测时,发现FIFO写入和读取数据不一致,有中间的单个bit发生错误。定位原因:FIFO的读写时钟是异步的,且时钟与信号不是同步的,或者读写时钟接反,导致写入数据和读取数据不一致,出现几bit错误额现象。
2024-11-25 22:58:17
714
1
原创 vivado+modelsim: xxx is not a function name
在写verilog modelsim仿真时,遇到error:xxx is not a function name。该变量xxx在仿真文件里,如下图红框所示,例化时,变量前面没有加点。
2024-11-11 18:23:14
463
原创 vivado综合成功,生成bit时一直卡在 initialiazing design。
解决办法:重启电脑,删除该工程下的imp文件夹(工程->.runs->impl_1),重新打开该工程,重新编译。vivado综合成功,生成bit时一直卡在 initialiazing design。定位原因:vivado 卡住。
2024-09-19 12:44:20
1200
原创 vivado error:Combinatorial Loop Alert:1 LUT cells form a combinatorial loop
在三段式状态机中,组合逻辑代码if else 语句未写全只写了if…,没有写else,导致错误。在组合逻辑中,一定要写全所有条件分支语句。
2024-09-06 20:39:38
811
2
原创 Problem running tcl command ::sw_intc_v3_3::generate : can‘t read “source_name(2)“
在使用SDK的时候报错:Problem running tcl command ::sw_intc_v3_3::generate : can’t read “source_name(2)”:…我们发现vivado工程中,concat 的一个输入管脚悬空了,导致SDK工程报错。删掉多余悬空的输入管脚。
2024-06-17 19:27:17
363
原创 Failed to update the BRAM INIT strings for XXX
解决方法:选择src -> lscript.ld,将memory region 选择为microblaze_local_memory_lmb_bram_if…vivado SDK 使用时遇到问题:Failed to update the BRAM INIT strings for XXX。
2024-06-13 21:39:43
807
原创 SDK version 2018.3 doesnt match hw_server version 2015.2
下载程序的时候遇到问题:SDK version 2018.3 doesnt match hw_server version 2015.2。解决方案:打开任务管理器,结束hw_server任务。
2024-06-13 21:20:06
486
1
原创 Microsemi LIBERO: Instantiation of ‘xxx‘ failed.
原因:我的设计代码使用了VHDL语言,仿真文件使用的是verilog语言,libero自带modelsim软件不支持混合仿真。也就是设计代码和仿真代码使用的需要是同一种语言,不然软件会报错。使用libero进行FPGA开发时,遇到了Instantiation of ‘xxx’ failed.问题。
2024-05-22 21:49:06
280
原创 TLV5638芯片AB两个通道没有同时输出
在D0在SCLK下降沿被采样后,还需要一个SCLK的上升沿以更新输出,通过仿真发现,SPI波形最后少了一个SCLK上升沿。因此只有前一个被写的通道数据有更新,另一个通道的数据未更新。在调试TLV5638芯片时,参考手册例子配置芯片,手册如下图所示,AB两通道不能同时更新,只有一个通道更新。第二个步骤和第三个步骤都写两遍。
2024-05-22 21:43:13
708
原创 电脑直接断电,导致下次launch的时候VIVADO SDK闪退
电脑直接断电,导致launch的时候VIVADO SDK闪退。launch SDK工程,点击import project。解决办法:删除.SDK下面的.metadata,选择.SDK路径,即可正常打开。
2024-03-14 19:17:59
658
原创 DDR ECC的使用
寄存器中设置的位会切换相应的数据位(字1或位[63:32])的后续写入内存的数据,而不影响写入的ECC位。寄存器中设置的位会切换相应的数据位(字3或位[127:96])的后续写入内存的数据,而不影响写入的ECC位。寄存器中设置的位会切换相应的数据位(字2或位[95:64])的后续数据写入内存,而不影响写入的ECC位。这个寄存器存储了第一次发生不可纠正错误的访问的(未纠正的)失败数据(位[63:32])。当ECC状态寄存器中的CE_STATUS位被清除时,这个寄存器重新启用,以存储下一个可纠正错误的ECC。
2024-03-07 17:29:06
2699
1
原创 launch SDK 时遇到错误:an exported file for this module is not found this location.
an exported file for this module is not found thsi location.
2024-03-01 16:17:47
1769
原创 jupyter notebook打开其他盘的文件
jupyter notebook打开其他盘文件打开jupyter notebook打开terminal输入:jupyter-notebook 路径打开你想打开的工程的文件打开jupyter notebook打开terminal输入:jupyter-notebook 路径打开你想打开的工程的文件
2023-12-26 14:30:13
1315
原创 VHDL or_reduce
VHDL的or_reduce是一种缩位运算符即"reduction operator"。把一个vector合并成一位,一个std_logic_vector名为example的变量,or_reduce完成examlle[0] or example[1] or …or example[N]功能。值得注意的是,使用or_reduce要包含头文件std_logic_misc。
2023-10-30 16:15:00
593
原创 VHDL if ( x =(x‘range => ‘0‘))
VHDL中遇到VHDL if ( x =(x’range => ‘0’))这种语法,之前也遇到过,当时弄明白了,现在过了一段时间又忘记了,好记性不如烂笔头,还是要及时做笔记哟。这句话的意思是如果x只包含0,那么此条件为true,就可以执行if后面的操作了。这是一种不依赖于x大小的写法。
2023-10-30 14:03:45
476
原创 OPNET <<< Program Abort >>> Standard function stack imbalance
出现此问题是因为FIN 和FOUT/FRET未配对。查看代码发现没写FOUT。写上FOUT就好了。
2023-10-29 23:52:30
311
原创 VScode Invoke-Expression: 无法将参数绑定到参数“Command”,因为该参数为空字符串
打开vscode时发生错误:Invoke-Expression : 无法将参数绑定到参数“Command”,因为该参数为空字符串。
2023-10-13 14:10:16
2310
4
原创 place30-640:the design requires more BUFG cells than are available in the target
作者将IP核封装成网表之后,工程实现的时候显示BUFG资源不够,但是,在未将IP核封装网表的时候资源是足够的。于是查看了在封装网表前后的资源报告发现,有一个IP核在不封装网表时,不需要BUFG资源,封装网表后,反而需要3个BUF资源,这导致整个工程的BUFG资源不够(我的工程本来资源就很紧张),于是我在该IP综合设置中,将BUFG的数值设置为0,这样工程在综合该IP核时,就不会使用3个BUFG。
2023-09-06 10:29:33
2505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅