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

这篇具有很好参考价值的文章主要介绍了fpga设计中如何防止信号被优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文分别对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信号可以添加,说明没有被优化。

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

方法2:

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

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

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设计中如何防止信号被优化文章来源地址https://www.toymoban.com/news/detail-441876.html

到了这里,关于fpga设计中如何防止信号被优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Verilog中的force语句用来强制更改信号的值,特别适用于仿真和调试。本文将深入探讨force语句在FPGA开发中的应用和注意事项。

    Verilog中的force语句用来强制更改信号的值,特别适用于仿真和调试。本文将深入探讨force语句在FPGA开发中的应用和注意事项。 首先,我们需要了解force语句的语法。其基本格式为force [time] signal = value。其中,time是可选参数,表示在何时开始强制更改信号的值;signal是要更改的

    2024年02月12日
    浏览(71)
  • 【毕业设计—DDS信号发生器】Quartus II 软件新建工程

    大学四年的时间转瞬即逝,2023年我将迎来我的本科毕业。为了记录自己的研究进展,我将在这儿分享我的毕业设计进度~~博客涉及的知识点,如有不对,欢迎大家及时纠正,共同进步! 我安装的是Quartus II 13.1 版本。 1.在电脑D磁盘下新建一个文件夹【DDS】,然后分别新建4个子

    2024年02月03日
    浏览(48)
  • FPGA—基于Quartus软件设计全加器

    本篇博客主要是基于Quartus软件件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。 1、半加器 1、定义: 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 2、真值表: A,B表示

    2024年02月06日
    浏览(42)
  • 基于Quartus II的fpga设计流程

    本文仅用于记录与学习。参考 串口(UART)的FPGA实现(含源码工程) 逻辑综合(logic synthesis)入门指南 quartusII关于时钟约束 FPGA内部硬件结构简介 如有侵权,联系删除 指用Verilog或VHDL语言实现的一个单元模块。在这个单元模块中,通过实例化将待验证设计(DUV)作为一个子模块

    2024年02月05日
    浏览(50)
  • FPGA中的防止扇出优化——max_fanout命令

    vivado自带很多命令帮助编译器更好的实现设计者的想法,用得好会变成开发利器。比如,max_fanout命令,本身是用来约束扇出,减少布线拥塞的常用命令。然而很多读者向我反映,使用这个命令之后发现没有任何事情发生,完全没有任何效果。这里我就带大家理一理这个命令的

    2024年02月10日
    浏览(31)
  • quartus如何烧写FPGA程序

    1.连接好JTAG线,点击烧写按钮 2.选择USB串口 3.生成jic文件,点击File-Covent Programming File...- 根据芯片型号选择正确的     4.删除旧版本程序,添加新版程序 4.  勾选前两项

    2024年02月11日
    浏览(54)
  • 使用Quartus II做FPGA设计遭遇的一些问题

    问题1:Error:Width mismatch in pin_name – source is 。。。 ** 问题2:Error (275028): Bus name allowed only on bus line – pin “data[7…0]” Error (275029): Incorrect connector style at port “test_data[7…0]” for symbol “inst” of type top

    2024年02月11日
    浏览(54)
  • EDA实验(Quartus Ⅱ+fpga) (四)---交通灯设计

    前言: 本文主要介绍了EDA原理与应用这门课程的相关实验及代码。使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6。 (一)实验目的 (1)熟悉交通灯控制器的工作原理; (2)了解设计中的优化方案; (3)进一步掌握状态机的设计; (4)学习较复杂数字系

    2024年02月02日
    浏览(53)
  • 密码锁设计Verilog代码Quartus 睿智FPGA开发板

    名称:密码锁设计Verilog代码Quartus  睿智FPGA开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 1、设计一个密码锁的控制电路,当输入正确代码时,输岀开锁信号用红灯亮、绿灯 熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁 2、在锁的控制电路中储存一个可以修改的4位代

    2024年01月18日
    浏览(45)
  • EDA实验(Quartus Ⅱ+fpga) (五)---多功能数字钟设计

    本实验代码为初学FPGA所写,逻辑不太清晰,请跳往下面网址查看最新的模块化设计数字钟,更易看懂 模块化多功能数字钟设计 前言: 本文主要介绍了EDA原理与应用这门课程的相关实验及代码。使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6。 (1)了解数字钟的

    2024年02月06日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包