在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

原來SpinalHDL中BlackBox封裝數組接口如此簡單

Spinal FPGA ? 來源:Spinal FPGA ? 2023-05-22 10:04 ? 次閱讀

編 者 按

當在SpinalHDL中調用別人的RTL代碼時,需要采用BlackBox進行封裝。對于大多數場景,想必小伙伴們都已輕車熟路。今天著重來看下當RTL代碼的接口中存在數組形式的接口時如何處理。

合并數組和非合并數組 在開始之前先了解兩個概念:合并數組與非合并數組。在SystemVerilog中,關于可綜合的數組存在兩種形式:
wire [1:0][7:0] data0; //合并數組 wire [7:0] data1[1:0]; //非合并數組 ? 在仿真方面,合并數組是緊密排列的,而非合并數組則是按照內存對齊的形式進行排列(電路綜合中則無需考慮):

a866bb9c-f70c-11ed-90ce-dac502259ad0.jpg

相應的,合并數組則可以作為一個整體進行賦值,而非合并數組則不可以:

a874c598-f70c-11ed-90ce-dac502259ad0.png

而合并數組與非合并數組,則可以通過SystemVerilog中所提供的流操作符進行相互轉換處理(是可以綜合的):

a8862f7c-f70c-11ed-90ce-dac502259ad0.png? ?

》BlackBox封裝

在了解了上面的背景知識之后,再來看如何這種數組類場景如何封裝至BlackBox。兩條規則:

1、BlackBox封裝針對數組類接口僅能支持合并數組類型。

2、當接口中存在非合并數組接口時則需手動封裝一層通過流操作符將非合并數組轉換為合并數組。

基于上面的規則,可以進行數組接口的BlackBox封裝。

看下面的RTL代碼示例:

a8a2a85a-f70c-11ed-90ce-dac502259ad0.png

該模塊輸入,輸出均為一個合并數組,實現功能為兩個元素的數據交換。我們在進行封裝BlackBox時可采用下面的封裝形式:

a8bcf00c-f70c-11ed-90ce-dac502259ad0.png

這里我們在BlackBox中定義接口時將合并數組data_in,data_out均定義為Bits類型,寬度為合并數組中所有元素的位寬總和(2*8).

(這里面的setInlineVerilog也可不寫,主要是懶得再創建一個SV文件了。關于這部分功能可參見《彩——看blackBox的inline功能》)

在進行調用時就可以和其他調用沒有區別了:

a8d9867c-f70c-11ed-90ce-dac502259ad0.png

進行仿真:

a8e007e0-f70c-11ed-90ce-dac502259ad0.png

結果非常符合預期:

a8ef52a4-f70c-11ed-90ce-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8961

    瀏覽量

    153295
  • 封裝
    +關注

    關注

    128

    文章

    8561

    瀏覽量

    144899
  • RTL
    RTL
    +關注

    關注

    1

    文章

    388

    瀏覽量

    60739
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70313
  • 數組
    +關注

    關注

    1

    文章

    419

    瀏覽量

    26399

原文標題:驚!原來SpinalHDL中BlackBox封裝數組接口如此簡單

文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    原來單片機編程可以如此簡單

    原來單片機編程可以如此簡單
    發表于 08-11 18:54

    SpinalHDL里實現優雅的添加待跟蹤波形信號

    在FPGA的開發過程,在線抓取波形往往是終極調試大法。而如何抓取信號,相信做邏輯開發的小伙伴都是輕車熟路,張口就來,無非兩種方式嘛:待跟蹤信號添加原語或者手動例化Ila。而在SpinalHDL
    發表于 06-22 14:37

    SpinalHDL的設計中集成現有RTL設計(IP)的渠道——BlackBox

    接口及parameter參數(這也是我們在RTL里例化IP時常用的)。我們來看SpinalHDL-doc給出的example:整個代碼里做了三件事:參數聲明、端口聲明,時鐘域映射。參數聲明在上例
    發表于 06-22 14:59

    關于SpinalHDL的驗證覆蓋率收集簡單說明

    在做RTL仿真驗證時,覆蓋率收集往往是我們在驗證需要注意的地方,本篇就SpinalHDL的驗證覆蓋率收集做一個簡單說明。sbt配置在Spinal
    發表于 06-24 15:56

    聊一聊SpinalHDL 1.6.1引入的blackbox inline功能

    BlackBox在之前的文章,曾介紹過如何封裝兼容別人的RTL代碼:SpinalHDL——集成你的RTL代碼整體的思路還是簡潔明了的,相信讀完后照著做很快就能上手。這對于保持設計的兼
    發表于 06-29 16:02

    聊聊SpinalHDL的FIFO

    顯示在Pop接口,那么此時可以選擇StreamFifoLowLatency:其時序模型為:至于里面的設計原理,建議自己去翻看一下源代碼,很簡單,重要的是將它封裝成標準的組建,減少我們真正“業務代碼”
    發表于 06-30 15:28

    SpinalHDL是如何讓仿真跑起來的

    SpinalHDL的測試代碼里也可以起多個,不過其為協程。SpinalHDL的仿真庫已經幫我們封裝好了底層協程的處理,兩個協程之間的通信(類似systemVerilog的mailb
    發表于 07-25 15:09

    記錄一個在使用BlackBoxparameter踩到的坑

    SpinalHDL doc里面也曾提到,在創建BlackBox時,關于原始RTL代碼的parameter的處理方式為:嗯,看起來很簡單,我們照貓畫虎就好了,最近在寫代碼時偶然間踩到了
    發表于 08-31 14:58

    SpinalHDL的對應關系及聲明形式

    針對SpinalHDL的兩大類型Reg、Wire,來梳理下在SpinalHDL的對應關系及聲明形式。
    的頭像 發表于 07-03 11:02 ?1851次閱讀

    SpinalHDL BlackBox時鐘與復位

    SpinalHDL中使用之前已有的Verilog等代碼的時候需要將這些代碼包在一個BlackBox里面,但是如果這些代碼里面有時鐘和復位,我們需要怎么將時鐘和復位端口和SpinalHDL
    的頭像 發表于 05-04 11:13 ?1025次閱讀
    <b class='flag-5'>SpinalHDL</b> <b class='flag-5'>BlackBox</b>時鐘與復位

    當RTL代碼的接口中存在數組形式的接口時如何處理?

    當在SpinalHDL調用別人的RTL代碼時,需要采用BlackBox進行封裝。對于大多數場景,想必小伙伴們都已輕車熟路。
    發表于 07-12 16:21 ?626次閱讀
    當RTL代碼的<b class='flag-5'>接口</b>中存在<b class='flag-5'>數組</b>形式的<b class='flag-5'>接口</b>時如何處理?

    Verilog代碼封裝后門訪問

    關于仿真里的后門訪問,之前的文章《三分鐘教會你SpinalHDL仿真中的后門讀寫》中有做過介紹,其針對的都是針對以SpinalHDL的代碼進行的后門訪問。今天來看看當封裝了Veril
    的頭像 發表于 07-15 10:22 ?1145次閱讀
    Verilog代碼<b class='flag-5'>封裝</b>后門訪問

    看懂EMC整改知識:原來竟然如此簡單!(上)

    看懂EMC整改知識:原來竟然如此簡單!|深圳比創達EMC(上)
    的頭像 發表于 09-06 11:10 ?1251次閱讀

    看懂EMC整改知識:原來竟然如此簡單!(下)

    看懂EMC整改知識:原來竟然如此簡單(下)?相信不少人是有疑問的,今天深圳市比創達電子科技有限公司就跟大家解答一下!
    的頭像 發表于 09-08 11:02 ?843次閱讀
    看懂EMC整改知識:<b class='flag-5'>原來</b>竟然<b class='flag-5'>如此</b><b class='flag-5'>簡單</b>!(下)

    淺析SpinalHDLPipeline的復位定制

    之前有系列文章介紹了SpinalHDLPipeline的使用,最近在一個功能模塊真實的使用了這個lib。
    的頭像 發表于 03-17 17:31 ?1336次閱讀
    淺析<b class='flag-5'>SpinalHDL</b><b class='flag-5'>中</b>Pipeline<b class='flag-5'>中</b>的復位定制
    主站蜘蛛池模板: 亚洲 丝袜 制服 欧美 另类 | 亚洲欧美一区二区久久香蕉 | 亚洲婷婷在线视频 | 日本美女视频网站 | 久久狠狠第一麻豆婷婷天天 | 字幕网中文aⅴ资源站 | 亚洲乱码卡一卡二卡三 | 亚洲 欧美 另类 吹潮 | 女人夜夜春| 久久精彩免费视频 | 伊人丁香婷婷综合一区二区 | 激情综合色综合啪啪开心 | 影院成人区精品一区二区婷婷丽春院影视 | 天天操天天干视频 | 国产一级做a爱免费视频 | 天天干天天拍天天操 | 天天射天天怕 | 久久黄色精品视频 | 韩国十八禁毛片无遮挡 | 韩国三级观影久久 | 欧美性受一区二区三区 | 一级做a爰片久久毛片免费看 | 天天爽夜夜爽夜夜爽 | 全部免费特黄特色大片农村 | 天天干夜夜玩 | 99热久久精品免费精品 | 男女艹逼软件 | 天堂网www中文天堂在线 | se色综合视频 | 最新人妖shemaletube人妖 最新日本免费一区二区三区中文 | 欧美一区二区精品 | 97射射| 秋霞特色大片18入口私人高清 | 欧美猛交xxxx乱大交 | 你懂的网站在线观看 | 2021国产成人精品国产 | a毛片网站| 免费可以看黄的视频 s色 | 亚欧毛片基地国产毛片基地 | 亚洲资源在线视频 | 亚洲国产人久久久成人精品网站 |