0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计中如何防止信号被优化

CHANBAEK 来源:硬码农二毛哥 作者:硬码农二毛哥 2023-05-25 11:25 次阅读

本文分别对quartus和vivado防止信号被优化的方法进行介绍。

为什么要防止信号被优化

FPGA开发调试阶段,经常遇到这样的情况,需要临时添加信号,观察信号变化,用来定位代码中存在的问题,很多时候这些临时添加的信号会被综合工具优化掉,为了防止这种情况的发生,可以使用添加虚拟引脚(quartus)和代码中添加属性(vivado)。

下面分别对两种方法进行说明,在原有代码中加入如下代码,观察cnt信号是否被优化,能否通过逻辑分析仪进行观测。

reg [3:0] cnt;
always@(posedge clk,negedge locked)
begin
if(!locked)
cnt <= 4'd0;
else
cnt <= cnt + 1'b1;
end

Quartus中如何设置虚拟引脚

在quartus中加入上述代码后,将cnt信号设置成输出引脚。 下面将cnt信号设置为虚拟引脚。

方法1:

在qsf文件中添加如下内容:

set_instance_assignment -name VIRTUAL_PIN ON -to cnt[0]
set_instance_assignment -name VIRTUAL_PIN ON -to cnt[1]
set_instance_assignment -name VIRTUAL_PIN ON -to cnt[2]
set_instance_assignment -name VIRTUAL_PIN ON -to cnt[3]

编译后,添加signal tap,cnt信号可以添加,说明没有被优化。

图片

方法2:

将cnt信号设置成输出后,打开Assignment Editor,进行如下设置。

图片

Vivado中防止信号被优化

在代码中加入(* dont_touch = "true" *) 。

(* dont_touch = "true" *) reg [3:0] cnt;
always@(posedge clk,negedge locked)
begin
if(!locked)
cnt <= 4'd0;
else
cnt <= cnt + 1'b1;
end

重新编译后,使用ila观测cnt,ila中有信号,证明信号没有被优化。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593199
  • 信号
    +关注

    关注

    11

    文章

    2639

    浏览量

    75388
  • 引脚
    +关注

    关注

    16

    文章

    1044

    浏览量

    48959
  • quartus
    +关注

    关注

    16

    文章

    169

    浏览量

    74272
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65101
收藏 人收藏

    评论

    相关推荐

    FPGA设计毛刺信号的产生及消除

    摘要:主要讨论了FPGA设计毛刺信号产生的原因,分析总结了处理毛刺信号的几种方法,通过对毛刺信号的处理可以提高芯片的稳定性。随着
    发表于 04-21 16:47

    FPGA的I_O时序优化设计

    FPGA的I_O时序优化设计在数字系统的同步接口设计, 可编程逻辑器件的输入输出往往需要和周围新片对接,此时IPO接口的时序问题显得尤为重要。介绍了几种
    发表于 08-12 11:57

    FPGA-PCB优化技术降低制造成本

    ,即将 HDL 合成和先进的 FPGA-PCB I/O 优化添加到 PADS Professional ,便可应对这些挑战。HDL 设计环境和 PCB 上物理实施之间的这一接口大大缩短了产品的上市
    发表于 09-20 11:11

    “无注册”修饰符如何防止变量保存到CPU寄存器

    您好,想象一个小的主循环,它连续地更新一个变量,一个中断,然后访问它。如果变量保存到寄存器,它就不能正常工作(优化可以做到这一点)。我如何防止变量
    发表于 10-09 11:09

    基于CPLD和FPGA的VHDL语言电路优化设计

    ,一般情况下,速度指标是首要的,在满足速度要求的前提下,尽可能实现面积优化。因此,本文结合在设计超声探伤数据采集卡过程的CPLD编程经验,提出串行设计、防止不必要锁存器的产生、使用状态机简化电路描述、资源共享,利用E2PROM
    发表于 06-18 07:45

    STM32F745通过FMC访问FPGA顺序优化

    有人吗?有没有人使用STM32F745,通过FMC访问FPGA,但是相邻的访问的操作的顺序优化
    发表于 04-15 01:05

    FPGA设计应用及优化策略有哪些?

    EDA技术具有什么特征?FPGA是什么原理?FPGA设计应用及优化策略基于VHDL的FPGA系统行为级设计
    发表于 04-15 06:33

    使用MCU设计,如何防止技术抄袭呢?

    使用MCU设计一个应用系统,如何防止技术破解抄袭呢?有比较可靠的方案推荐吗?
    发表于 11-19 08:46

    今日说“法”:如何防止reg、wire型信号在使用逻辑分析仪时优化

    )对于reg型信号,为了防止Altera自带综合器将其优化掉,可以添加noprune属性。这样就可以防止某些寄存器信号
    发表于 05-16 17:48

    FPGA信号处理算法设计、实现以及优化(南京)

    利用FPGA实现信号处理算法是一个难度颇高的应用,不仅涉及到对信号处理算法、FPGA芯片和开发工具的学习,还意味着要改变传统利用软件在DSP上实现算法的习惯,从面向硬件实现的算法设计、
    发表于 12-26 17:26 12次下载

    Vivado防止信号被综合掉的三种方法

    = “{TRUE|FALSE |SOFT}” *),可以防止信号被综合掉,但是无法防止在布局布线的时候优化掉。3、 信号前面使用(* DO
    的头像 发表于 06-01 16:59 1.2w次阅读
    Vivado<b class='flag-5'>防止</b><b class='flag-5'>信号</b>被综合掉的三种方法

    Vivado防止信号被综合掉的三种方法

    = “{TRUE|FALSE |SOFT}” *),可以防止信号被综合掉,但是无法防止在布局布线的时候优化掉。3、 信号前面使用(* DO
    的头像 发表于 10-09 15:22 5431次阅读

    信号管脚任务可进行多个FPGA的I/O优化

    信号销任务之间可以自动优化PCB上的多个fpga同时尊重pin-specific规则和约束。减少路由层,减少跨界车和整体跟踪PCB上的长度,并减少信号完整性问题较高的毕业率和更短的
    的头像 发表于 10-14 07:06 2879次阅读

    如何使用Xilinx的FPGA对高速PCB信号实现优化设计

    本文档的主要内容详细介绍的是如何使用Xilinx的FPGA对高速PCB信号实现优化设计。
    发表于 01-13 17:00 25次下载
    如何使用Xilinx的<b class='flag-5'>FPGA</b>对高速PCB<b class='flag-5'>信号</b>实现<b class='flag-5'>优化</b>设计

    介绍FPGA在线调试的一大利器—VIO

    之前的文章介绍了FPGA在线调试的方法,包括选定抓取信号防止信号优化的方法等等。
    发表于 06-20 10:38 3799次阅读
    介绍<b class='flag-5'>FPGA</b>在线调试的一大利器—VIO