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

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

3天内不再提示

科普一下xilinx verilog语法技巧

FPGA之家 来源:FPGA开源工作室 2023-01-30 16:21 次阅读

在Vivado Design Suite中,Vivado综合能够合成多种类型的属性。在大多数情况下,这些属性具有相同的语法和相同的行为。

•如果Vivado综合支持该属性,它将使用该属性,并创建反映已使用属性的逻辑。

•如果工具无法识别指定的属性,则Vivado综合会将属性及其值传递给生成的网表。

1.ASYNC_REG

ASYNC_REG是影响Vivado工具流中许多进程的属性。此属性的目的是通知工具寄存器能够在D输入引脚中接收相对于源时钟的异步数据,或者该寄存器是同步链中的同步寄存器。

当遇到此属性时,Vivado综合会将其视为DONT_TOUCH属性,并在网表中向前推送ASYNC_REG属性。此过程可确保具有ASYNC_REG属性的对象未进行优化,并且流程中稍后的工具会接收属性以正确处理它。

您可以将此属性放在任何寄存器上;值为FALSE(默认值)和TRUE。可以在RTL或XDC中设置此属性。

ASYNC_REG Verilog Example:

(*ASYNC_REG = “TRUE” *) reg [2:0] sync_regs;

2.CLOCK_BUFFER_TYPE

在输入时钟上应用CLOCK_BUFFER_TYPE以描述要使用的时钟缓冲器类型。

默认情况下,Vivado综合使用BUFG作为时钟缓冲器。支持的值是“BUFG”,“BUFH”,“BUFIO”,“BUFMR”,“BUFR”或“无”。CLOCK_BUFFER_TYPE属性可以放在任何顶级时钟端口上。它可以在RTL和XDC中设置。

CLOCK_BUFFER_TYPE Verilog Example

(* clock_buffer_type = “none”*) input clk1;

CLOCK_BUFFER_TYPE XDC Example

set_property CLOCK_BUFFER_TYPEBUFG [get_ports clk]

3 FSM_ENCODING

FSM_ENCODING控制状态机上的编码。通常,Vivado工具会根据最适合大多数设计的启发式方法为状态机选择编码协议。某些设计类型使用特定的编码协议可以更好地工作

FSM_ENCODING可以放在状态机寄存器上。其合法价值是“one_hot”,“sequential”,“johnson”,“grey”,“auto”和“none”。“auto”值是默认值,允许工具确定最佳编码。可以在RTL或XDC中设置此属性。

FSM_ENCODING Example (Verilog)

(* fsm_encoding = “one_hot” *)reg [7:0] my_state;

4 KEEP

使用KEEP属性可防止信号优化或被吸收到逻辑块中的优化。此属性指示综合工具保持其所处的信号,并将该信号放入网表中。

例如,如果信号是2位AND门的输出,并且它驱动另一个AND门,则KEEP属性可用于防止该信号合并到包含两个AND门的较大LUT中。

KEEP也常用于时序约束。如果对通常会优化的信号存在时序约束,KEEP会阻止该操作,并允许使用正确的时序规则

KEEP Example (Verilog)

(* keep = “true” *) wire sig1;

assign sig1 = in1 & in2;

assign out1 = sig1 & in2;

5 RAM_STYLE

RAM_STYLE指示Vivado综合工具如何推断内存。可接受的值是:

•block:指示工具推断RAMB类型组件。

•distributed:指示工具推断LUT RAM。

•寄存器:指示工具推断寄存器而不是RAM。

•ultra:指示工具使用UltraScale +URAM原语。

默认情况下,该工具根据启发式选择要推断的RAM,以便为大多数设计提供最佳结果。将此属性放在为RAM声明的数组或层次结构级别上。

•如果设置了信号,该属性将影响该特定信号。

•如果设置在层次结构级别上,则会影响该层次结构级别中的所有RAM。

层次结构的子级别不受影响。

这可以在RTL或XDC中设置。

RAM_STYLE Example (Verilog)

(* ram_style = “distributed” *)reg [data_size-1:0] myram [2**addr_size-1:0];

6 ROM_STYLE

ROM_STYLE指示综合工具如何推断ROM存储器。可接受的值是:

•block:指示工具推断RAMB类型组件

•distributed:指示工具推断LUT ROM。默认情况下,该工具根据启发式选择要推断的ROM,以便为大多数设计提供最佳结果。

这可以在RTL和XDC中设置。

ROM_STYLE Example (Verilog)

(* rom_style = “distributed” *)reg [data_size-1:0] myrom [2**addr_size-1:0];






审核编辑:刘清

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

    关注

    31

    文章

    5308

    浏览量

    119980
  • HDL
    HDL
    +关注

    关注

    8

    文章

    327

    浏览量

    47336
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61043
  • 数字逻辑电路

    关注

    0

    文章

    106

    浏览量

    15800
  • SRL
    SRL
    +关注

    关注

    0

    文章

    5

    浏览量

    6722

原文标题:xilinx verilog 语法技巧

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    硬件描述语言(HDL)编码技术:xilinx verilog语法技巧

    xilinx verilog语法技巧 硬件描述语言(HDL)编码技术让您: •描述数字逻辑电路中最常见的功能。 •充分利用Xilinx®
    的头像 发表于 12-13 10:29 3506次阅读

    深入理解FPGA Verilog HDL语法()

    今天给大侠带来的是周掌握FPGA Verilog HDL 语法,今天开启第天,下面咱们废话就不多说了,起来看看吧。
    发表于 07-18 09:47 2999次阅读

    Verilog红宝书_基本语法__恒创科技出品 V1.1

    Verilog红宝书_基本语法__恒创科技出品 V1.1
    发表于 10-09 08:53

    Verilog基础语法

    Verilog基础语法
    发表于 05-27 08:00

    科普一下ZYNQ是什么

    关注、星标公众号,直达精彩内容来源:ZYNQ作者:watchman最近公司开始做个项目,再次使用到ZYNQ,今天给大家科普一下ZYNQ是什么,以及ZYNQ在嵌入式系统中的应用情况。
    发表于 11-05 08:53

    小编科普一下RK3399/libdrm/modetest

    小编科普一下RK3399/libdrm/modetest
    发表于 03-07 07:06

    可综合的Verilog语法和语义

    可综合的Verilog语法和语义(剑桥大学,影印):第七版
    发表于 05-21 14:50 27次下载
    可综合的<b class='flag-5'>Verilog</b><b class='flag-5'>语法</b>和语义

    Verilog HDL实验练习与语法手册

    Verilog HDL实验练习与语法手册-高教
    发表于 05-11 11:30 0次下载

    常见的Verilog行为级描述语法

    常见的Verilog描述语句与对应的逻辑关系;熟悉语法与逻辑之间的关系
    的头像 发表于 09-15 08:18 1w次阅读
    常见的<b class='flag-5'>Verilog</b>行为级描述<b class='flag-5'>语法</b>

    通过实例设计来加深Verilog描述语法理解

    作者:小鱼,Xilinx学术合作 .概述 在文章《Verilog HDL入门思路梳理》我们说过应该如何去学习Verilog HDL描述。然而第
    的头像 发表于 01-02 09:45 1534次阅读
    通过实例设计来加深<b class='flag-5'>Verilog</b>描述<b class='flag-5'>语法</b>理解

    Verilog语法进阶

    Verilog语法进阶说明。
    发表于 05-06 16:14 30次下载

    简单介绍一下-Verilog-AMS的基础知识

    -Verilog-AMS,今天就简单介绍一下-Verilog-AMS。 为了便于物理系统的建模,人们在Verilog-2005的基础上,添加了
    的头像 发表于 10-21 14:50 9737次阅读
    简单介绍<b class='flag-5'>一下</b>-<b class='flag-5'>Verilog</b>-AMS的基础知识

    Verilog HDL入门教程-Verilog HDL的基本语法

    Verilog HDL入门教程-Verilog HDL的基本语法
    发表于 01-07 09:23 178次下载

    科普一下MTU是什么,如何设置MTU

    欢迎来到东用知识小课堂,下面我们就来科普一下一下MTU是什么,如何设置MTUMTU是最大传输单元的意思,代指类通讯协议某层上所能通过的最大数据包大小(以byte为单位)。最大传输单
    的头像 发表于 10-29 06:00 4619次阅读
    <b class='flag-5'>科普</b><b class='flag-5'>一下</b>MTU是什么,如何设置MTU

    Verilog语法中运算符的用法

    verilog语法中使用以下两个运算符可以简化我们的位选择代码。
    的头像 发表于 10-25 15:17 284次阅读
    <b class='flag-5'>Verilog</b><b class='flag-5'>语法</b>中运算符的用法