0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado 2023.2版本的新增功能

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2024-01-02 09:39 ? 次閱讀

Vivado在前一段時(shí)間更新了2023.2版本,經(jīng)過一段時(shí)間的使用這個(gè)版本還是很絲滑的,用起來挺舒服。

特別是增加了一個(gè)Lint檢查的按鈕,可以讓我們提前知道RTL設(shè)計(jì)有什么風(fēng)險(xiǎn)。做數(shù)字IC設(shè)計(jì)的時(shí)候?qū)懲甏a之后可能不是直接就去仿真,而是先拿Spyglass做一次檢查,消除掉lint錯(cuò)誤之后再拿去仿真,Vivado增加了這個(gè)功能,讓我們能夠更好的去掌控自己的代碼。

3d482ac4-a87f-11ee-8b88-92fbcf53809c.png

這個(gè)lint檢查有什么作用呢,先來看一小段代碼。

`timescale 1ns / 1ps
module top(
    input  [7:0] a  ,
    input        b  ,
    output [7:0] c  
    );


always @(*) begin
    if(b == 1'b1)begin
        c = a;
    end
end


endmodule

沒有幾行代碼,直接一看有兩處問題,第一是c在always begin end里面進(jìn)行賦值的,應(yīng)該用reg類型,第二會產(chǎn)生一個(gè)latch。

代碼比較少,可以一眼發(fā)現(xiàn)問題,如果代碼比較多呢,還能一眼發(fā)現(xiàn)問題嗎?之前版本沒有l(wèi)int檢查的時(shí)候,我們會拿去直接綜合,也許會給我們報(bào)一個(gè)警告出來,但是又有多少次我們會去一個(gè)一個(gè)的看這個(gè)警告報(bào)的什么問題呢?

現(xiàn)在增加了Lint功能,直接點(diǎn)擊run一下看看。

3d614c48-a87f-11ee-8b88-92fbcf53809c.png

vivado直接報(bào)錯(cuò)了,告訴我們c不是reg類型的。

把c改成reg類型的,代碼如下

`timescale 1ns / 1ps
module top(
    input      [7:0] a  ,
    input            b  ,
    output reg [7:0] c  
    );


always @(*) begin
    if(b == 1'b1)begin
        c = a;
    end
end


endmodule

先來綜合一下看看,下面是報(bào)告。

3d71ed64-a87f-11ee-8b88-92fbcf53809c.png

看起來一點(diǎn)問題都沒有,報(bào)了一大堆信息,也許你仔細(xì)看還能看到其中一條警告說c被綜合成一個(gè)latch了,要是信息更多的話還會看到他不。

而運(yùn)行l(wèi)int之后,會幫我們生成一個(gè)表,可以很清晰的看到這些信息:

3d8fbc22-a87f-11ee-8b88-92fbcf53809c.png

再來看另外一個(gè)典型的多驅(qū)動問題:

`timescale 1ns / 1ps
module top(
    input            clk,
    input      [7:0] a1 ,
    input      [7:0] a2 ,
    input            b  ,
    output reg [7:0] c  
    );


always @(posedge clk) begin
    if(b == 1'b1)begin
        c <= a1;
    end
end


always @(posedge clk) begin
    c <= a2;
end


endmodule

在綜合后會有一個(gè)關(guān)鍵警告產(chǎn)生,但也不會報(bào)錯(cuò),這個(gè)會在之后的布局布線的時(shí)候報(bào)錯(cuò)。

3e01d65e-a87f-11ee-8b88-92fbcf53809c.png

同樣lint也會把這個(gè)問題給暴露出來:

3e1ab962-a87f-11ee-8b88-92fbcf53809c.png

還有一些小問題比如位寬不匹配的問題,lint也能幫我們查出來

`timescale 1ns / 1ps
module top(
    input            clk,
    input      [7:0] a  ,
    input            b  ,
    output reg [6:0] c  
    );


always @(posedge clk) begin
    if(b == 3'b101)begin
        c <= a;
    end
end


submodule submodule_inst(
    .a (kkk)
)


endmodule


module submodule (
    output [3:0] a
);
    assign a = 3'b111;
endmodule

不知道大家能一眼看出來這個(gè)代碼的問題不。

先看看綜合的結(jié)果:

3e31a064-a87f-11ee-8b88-92fbcf53809c.png

看著似乎沒啥問題。

3e4e22c0-a87f-11ee-8b88-92fbcf53809c.png

lint報(bào)了一堆位寬不匹配的問題。

先看看第一個(gè)kkk的位寬不匹配,可以看到在在submodule這個(gè)模塊里面輸出了一個(gè)4bit的變量,但是我們在例化這個(gè)模塊的時(shí)候kkk忘記定義了,這個(gè)時(shí)候kkk就被隱式推斷為了一個(gè)1bit的wire類型的變量,這樣就出現(xiàn)了潛在的bug。其他幾個(gè)位寬不匹配也是一樣的,當(dāng)然不是所有的位寬不匹配都是bug,這個(gè)就需要我們明確知道哪些是我們故意這樣設(shè)計(jì)的。

通過觀察lint報(bào)告,可以讓我們更加了解自己的設(shè)計(jì),讓問題發(fā)現(xiàn)在最開始的地方,而不是等到最后布局布線了甚至更晚,才發(fā)現(xiàn)這種低級的問題。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    38

    文章

    1296

    瀏覽量

    103953
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4082

    瀏覽量

    133606
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59785
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68611
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66531

原文標(biāo)題:Vivado2023.2的一個(gè)小功能

文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    上一章聊了一下vitis2023.2怎樣使用classic Vitis IDE,這章我們來說一說基于classic Vitis IDE的工程怎么樣更新到新版本的Vitis Unified IDE
    發(fā)表于 03-24 17:14

    Hanlp1.7版本新增功能一覽

    `Hanlp1.7版本在去年下半年的時(shí)候就隨大快的DKH1.6版本同時(shí)發(fā)布了,截至目前1.7大版本也更新到了1.7.1了。本篇分別就1.7.0和1.7.1中新增
    發(fā)表于 03-22 09:56

    怎么將vivado12.3更新到最新的15.4版本?

    你好我有完整版的vivado 2012.3版本,我使用的是DVDalong和ZC 706 Board。我想將軟件更新到最新版本。請讓我知道這是可能的,免費(fèi)的。
    發(fā)表于 04-14 06:48

    Xilinx 發(fā)布Vivado2013.3新增全新設(shè)計(jì)方法及功能

    中國北京- All Programmable 技術(shù)和器件的全球領(lǐng)先企業(yè)賽靈思公司(Xilinx, Inc. (NASDAQ:XLNX))今天發(fā)布Vivado Design Suite2013.3版本
    發(fā)表于 10-29 10:29 ?866次閱讀

    Xilinx發(fā)布Vivado 2013.3 新增全新設(shè)計(jì)方法及功能

    Xilinx發(fā)布Vivado Design Suite 2013.3版本新增最新UltraFast設(shè)計(jì)方法及新一代即插即用IP和部分重配置功能,豐富設(shè)計(jì)流程,實(shí)現(xiàn)前所未有的IP易用性
    發(fā)表于 12-24 17:51 ?1345次閱讀

    賽靈思Vivado設(shè)計(jì)套件推出2013.1版本,提供IP 集成器和高層次綜合功能

    關(guān)鍵詞:Vivado , 設(shè)計(jì)套件 賽靈思公司(Xilinx)今天宣布, 其業(yè)界首款可編程SoC級增強(qiáng)型Vivado設(shè)計(jì)套件的最新版本在生產(chǎn)力方面進(jìn)行了兩大改進(jìn)。Vivado設(shè)計(jì)套件2
    發(fā)表于 09-25 09:18 ?408次閱讀

    Vivado設(shè)計(jì)套件2017.3的新功能介紹

    視頻重點(diǎn)向您介紹了Vivado設(shè)計(jì)套件2017.3版本中的增強(qiáng)功能,包括操作系統(tǒng)和器件支持,高級增強(qiáng)功能,加速集成,實(shí)施和驗(yàn)證的各種升級和
    的頭像 發(fā)表于 11-21 06:15 ?3644次閱讀
    <b class='flag-5'>Vivado</b>設(shè)計(jì)套件2017.3的新<b class='flag-5'>功能</b>介紹

    Vivado Design Suite 2015.3新增量編譯功能介紹

    了解Vivado實(shí)現(xiàn)中2015.3中的新增量編譯功能,包括更好地處理物理優(yōu)化和自動增量編譯流程。
    的頭像 發(fā)表于 11-20 06:56 ?2858次閱讀

    Vivado Design Suite 2018.1設(shè)計(jì)套件中的新增功能介紹

    視頻重點(diǎn)介紹了Vivado設(shè)計(jì)套件2018.1版本中的新增功能,包括對操作系統(tǒng)以及器件的支持情況,還有高層次增強(qiáng)
    的頭像 發(fā)表于 11-20 06:28 ?2557次閱讀
    <b class='flag-5'>Vivado</b> Design Suite 2018.1設(shè)計(jì)套件中的<b class='flag-5'>新增</b><b class='flag-5'>功能</b>介紹

    Vivado 2015.3中的新增量編譯功能介紹

    了解Vivado實(shí)現(xiàn)中2015.3中的新增量編譯功能,包括更好地處理物理優(yōu)化和自動增量編譯流程。
    的頭像 發(fā)表于 11-29 06:32 ?3673次閱讀

    Vivado 2015.3的新增量編譯功能

    了解Vivado實(shí)現(xiàn)中2015.3中的新增量編譯功能,包括更好地處理物理優(yōu)化和自動增量編譯流程。
    的頭像 發(fā)表于 11-30 19:24 ?4535次閱讀

    Vivado? 設(shè)計(jì)套件 2023.2 版本:加速自適應(yīng) SoC 和 FPGA 產(chǎn)品設(shè)計(jì)

    很高興為大家詳細(xì)介紹 AMD 最新發(fā)布的 Vivado 設(shè)計(jì)套件2023.2 ,以及它的更多優(yōu)勢——將幫助設(shè)計(jì)人員快速實(shí)現(xiàn)
    的頭像 發(fā)表于 11-02 08:10 ?1536次閱讀

    Vitis2023.2全新GUI的功能特性介紹

    Vitis2023.2之前就安裝過了,vivado 2023.2相比于2023.1區(qū)別不明顯,但嵌入式平臺vitis2023.2的變化很大,有種vscode的既視感,更符合軟件開發(fā)人員
    的頭像 發(fā)表于 01-05 09:42 ?1358次閱讀
    Vitis<b class='flag-5'>2023.2</b>全新GUI的<b class='flag-5'>功能</b>特性介紹

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式發(fā)布,今天我們就來看看新版本帶來了哪些新特性。
    的頭像 發(fā)表于 09-18 10:30 ?1341次閱讀
    <b class='flag-5'>Vivado</b> 2024.1<b class='flag-5'>版本</b>的新特性(1)

    使用Vivado通過AXI Quad SPI實(shí)現(xiàn)XIP功能

    博客提供了基于2023.2 Vivado的參考工程,展示如何使用Microblaze 地執(zhí)行(XIP)程序,并提供一個(gè)簡單的bootloader。
    的頭像 發(fā)表于 10-29 14:23 ?356次閱讀
    使用<b class='flag-5'>Vivado</b>通過AXI Quad SPI實(shí)現(xiàn)XIP<b class='flag-5'>功能</b>