Vivado综合属性系列之二 SRL_STYLE

这篇具有很好参考价值的文章主要介绍了Vivado综合属性系列之二 SRL_STYLE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、SRL_STYLE

        2.1 移位寄存器实现方式

        2.2 工程代码

        2.3 参考资料


一、前言

        移位寄存器SRL在工程中属于使用频率较高个模块,可用于存储数据,实现串并转换;

根据数据移动方向可分为左移寄存器,右移寄存器,左移是向数据高位移动,右移是向数据低位移动。

二、SRL_STYLE

        2.1 移位寄存器实现方式

        移位寄存器的实现方式多样,可以用寄存器,LUT,以及寄存器+LUT组合来实现,以及块状RAM来实现,对于采用哪种方式,Vivado提供了属性SRL_STYLE来控制生成方式,SRL_STYLE的可选值有6个,register,srl,srl_reg,reg_srl,reg_srl_reg,block,含义如下

register: 只使用寄存器来实现,不使用LUT资源

srl:不使用寄存器资源,只使用LUT来实现

srl_reg:同时使用LUT和寄存器来实现,并将寄存器放在最后一级

reg_srl: 同时使用寄存器和LUT资源来实现,寄存器放在第一级

reg_srl_reg:同时使用寄存器和LUT资源来实现,第一级和最后一级都为寄存器

block:使用块状RAM来实现

        不同的实现方式主要是对资源和时序的影响不同,通常,如果要时序性能佳,尽量避免最后一级用LUT来实现,如果是移位的深度较大,建议使用Block ram实现,可节省寄存器和LUT资源。

        2.2 工程代码

此处为一个12位右移寄存器的代码,设置实现方式为register

`timescale 1ns / 1ps
module srl_style( d,ce,clk,out );
parameter len=12;
input d,ce,clk;
output out;
(* SRL_STYLE="block"*) reg [len-1:0] srl;   //使用寄存器来实现移位寄存器
always@(posedge clk)
begin 
if(ce==1'b1)
srl[len-1:1]<=srl[len-2:0];
srl[0]<=d;
end
assign out=srl[len-1];
endmodule

        综合结果如下图,通过网表图可布局布线结果可知,使用了12个FDRE来实现 

Vivado综合属性系列之二 SRL_STYLE

        将属性SRL_STYLE改为SRL,实现使用了SRL16E,无寄存器 

Vivado综合属性系列之二 SRL_STYLE

        将属性SRL_STYLE改为BLOCK,此时实现采用了RAMB 18E1

Vivado综合属性系列之二 SRL_STYLE

        2.3 参考资料

        用户手册:ug901-vivado-synthesis.pdf文章来源地址https://www.toymoban.com/news/detail-443952.html

到了这里,关于Vivado综合属性系列之二 SRL_STYLE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • FPGA设计入门:Vivado综合简介

    FPGA设计入门:Vivado综合简介 FPGA是一种基于可编程逻辑器件的数字电路设计技术,可以通过编程实现各种电路功能。Vivado是Xilinx公司推出的一款开发工具,可以用来对FPGA进行综合、布局、布线、生成比特流等操作。本篇文章将从Vivado综合的基本流程入手,详细介绍如何使用

    2024年02月09日
    浏览(33)
  • Vivado综合报错及解决方法

    在使用Vivado进行程序综合过程中,全编译报错,如下图: [Chipscope 16-302]Could not generate core for dbg_hub.Aborting IP Generate operaion.The current Vivado temporary directory path. ............ 报错原因: 工程文件夹名称太长,缩短工程文件夹名称如下图。   解决方法: 缩短工程文件夹名称,重新编

    2024年02月12日
    浏览(37)
  • Vivado综合生成BRAM及与LUTRAM的区别

    使用vivado中的BRAM可以通过例化 Block Memory Generator 这一ip并进行相关的设定。 另外可以通过直接编写符合BRAM规范的代码,借助综合工具直接将其综合为BRAM。这时需要通过 (*ram_style=\\\"block\\\"*) 对 array 进行修饰。 下面给出一种看似可以综合为BRAM的示例。 上述代码虽然用 (*ram_style

    2024年02月15日
    浏览(32)
  • vivado 设置综合synthesis支持system verilog

    在用vivado综合代码时,发现utilization资源利用率很少,查了一下各个模块的LUT使用情况,发现只有.v  ,而没有.sv文件。查了下原因主要是synthesis缺少了选项。 1、design sources中右键相关source files的属性选择type为SystemVerilog  2、右键synthesis,选择setting,在More Options选项处 加上指

    2024年02月12日
    浏览(57)
  • 关于Windows vivado综合卡死的问题

    在综合一个比较简单的工程时发现,在做了些许改动之后(添加了ila),发现综合长时间卡死在第一步(running synth_design),这是相当异常的,因为之前短时间内完成综合并能生成比特流。 起初认为是ila的原因,于是尝试减少ila抓取信号的depth、减少interface数量甚至直接去掉

    2024年02月15日
    浏览(45)
  • VIVADO综合时报错 : has multiple drivers

    错误分析 :是multiple drivers。同一个变量,在不同的always 或者assign中被赋值,造成冲突。这在Verilog语言中是不被允许的。尤其是在复制一段代码之后,漏掉要修改的变量名,很容易导致这个问题。 不可综合语句 ——在多个always块中对同一变量赋值 原因探究 :寄存器

    2023年04月08日
    浏览(25)
  • Vivado ip核综合失败,且无任何报错

    如果log信息里有TclStackFree: incorrect freePtr. Call out of sequence?可能是因为计算机的名字不能有中文,改一下就好了。反正我的是,刚装的vivado 2021版,测试软件时找了好几天解决办法https://forums.xilinx.com/t5/Synthesis/TclStackFree-incorrect-freePtr-Call-out-of-sequence-in-2016-4/m-p/742698

    2024年02月13日
    浏览(34)
  • 如何使用Synplify综合vivado带IP核的工程

    下面的说法来自网上: 综合时间更好,综合出来所使用的逻辑更少 综合的时序更好 在IC设计中,使用Synplify综合+Vivado组合比较多。synplify 用于生成网表,然后将网表倒入FPGA中,进行布局布线等操作。 Libero集成开发环境中Synplify应用与提高-Microsemi(Actel) FPGA开发工具——周

    2024年02月11日
    浏览(38)
  • VIVADO报错:[opt31-67]之MIG ip核综合失败

    博客1:添加IP核的方法错误 博客2: 模块例化时有输入端口未连接 平时我们我们正常生成ip核的操是如下的,这下的结果就会导致最终报错。报错结果如下 [Opt 31-67] Problem: A LUT5 cell in the design is missing a connection on input pin I0,… The LUT cell nameis:u_mig_7series_0/u_mig_7series_0_mig/u_memc_ui_

    2024年02月13日
    浏览(39)
  • Xilinx Vivado的RTL分析(RTL analysis)、综合(synthesis)和实现(implementation)的区别?

            Xilinx 的开发工具Vivado其实还是比较好上手的,在左边的设计流程导航已经把FPGA的开发过程按先后顺序给排列出来了: Project Manager:项目管理器,此项是对项目的参数进行设置 IP Integrator:IP集成器,此项是对IP的操作 Simulation:仿真,包括功能仿真、综合后仿真和

    2024年02月03日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包