芯片资讯
热点资讯
- FPGA排序-冒泡排序(Verilog版)介绍
- Infineon品牌SLE 4432 C芯片IC EEPROM 256BYTE CHIP的技术和方案应用介绍
- 深度解析索尼的多重曝光HDR技术
- FPGA浮点IP内核究竟有哪些优势呢?
- Microchip微芯半导体AT97SC3205T-X3A1C20B芯片FF COM I2C TPM 4.4MM TSS
- 聊一聊MEMS先生的微机电系统
- Melexis品牌MLX81113KDC-BAB-000-RE芯片IC LIN RGB CTRLR 32KB 4CH 8
- pH传感器的工作原理及应用
- Atmel品牌AT17LV65-10JI芯片CONFIG MEMORY, 64KX1, SERIAL的技术和方案应用介绍
- 大疆的低成本高阶智能驾驶方案详解
- 发布日期:2024-01-05 07:19 点击次数:162
在项目初期,在使用FPGA工具quartus或者vivado生成版本烧入开发板进行调试时(DC开启优化选项后同样会优化掉寄存器),我们有时会发现部分寄存器被优化掉了,今天简单聊聊被优化的几种情况。
1、寄存器被优化的原因目前鸽子发现寄存器被优化的原因主要有两种:
1)驱动寄存器的信号没有驱动源
a. 至少有一个信号没有驱动源,也可能是多个
2)寄存器负载是悬空的,包含如下场景
a. 寄存器的唯一负载时悬空
b. 寄存器的所有负载均悬空
部分场景下被优化的问题很好排查,有些场景排查会比较麻烦,仅仅从信号连线上看都是正常的,无法通过肉眼快速发现问题,这时候需要去看综合报告,找到问题的源头。
如下图所示,芯片交易网IC交易网crm是复制产生时钟复位的模块, EEPROM带电可擦可编程存储器芯片大全其中输出clka/clka_rst_n给模块a, ATMEGA系列ATMEL芯片COM其中输出clkb/clkb_rst_n给模块b。Soft_reset_n是clka_rst_n和clkb_rst_n的源头之一。Soft_reset_n为0, 电子元器件PDF资料大全则clka_rst_n/clkb_rst_n为0, CMOS图像传感器集成电路芯片处于复制状态。Soft_reset_n是配置读写模块CSR的一个可配置寄存器,其内部偏移地址为0x60。
通过quartus/vivado查看网表结构和资源利用率,EEPROM带电可擦可编程存储器芯片大全我们发现模块A和模块B大量资源被优化,不符合常理。经过检测发现,所有信号连接均正常,没有悬空,所有信号均存在负载。
经过反复排查后发现,CSR模块被手动添加的Soft_reset_n寄存器地址分配在0x60,而CSR入口wr_addr[5:0]只有6bit,只能访问0x40以内的地址范围,因此Soft_reset_n在实际网表中是不存在的,导致clka_rst_n/clkb_rst_n都没有驱动源,因此模块A和模块B大量资源被优化。
在进行FPGA版本调试之前,首先进行spyglass lint检查 或者检查quartus/vivado产生的综合报告,检查是否存在如下warning:
信号没有驱动信号悬空把这些warning确认完后再进行版本调试。
4、简单的规律大量模块逻辑被优化,重点看时钟复位
少量模块逻辑被优化,重点看资源独享的驱动信号。