精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

如何對SpinalEnum類型進行操作

lhl545545 ? 來源:Spinal FPGA ? 作者:Spinal FPGA ? 2022-09-05 10:37 ? 次閱讀

SpinalEnum其實一直很少直接使用,前段時間做Avalon總線的仿真偶爾用到,初上手仿真還略微耽誤了我幾分鐘,今天就SpinalEnum的仿真簡單share下。

》關于SpinalEnum SpinalEnum說白了就是一個枚舉類型,像SpinalHDL中所提供的fsm lib其狀態的表示均采用的SpinalEnum。使用其好處是我們在查看波形時能夠所見即所得,看到波形的狀態,像下面的樣子:

04c91b94-2bf9-11ed-ba43-dac502259ad0.png

而關于SpinalEnum在設計中的使用方式,在SpinalHDL Document中所提及到的已足夠設計使用了。之前也曾分享過一篇SpinalEnum中的一些tips:
《Enum幾個值得了解的Tips》。今天著重分享下在仿真中如何對SpinalEnum類型進行操作。為簡單起見,我們這里的DUT采取如下邏輯:

import spinal.core._
object Num extends SpinalEnum{val one,two,three,four=newElement()}case class EnumDemo() extends Component{val io=new Bundle{val dataIn=in(Num)val dataOut=out(Num)  }  noIoPrefix()  io.dataOut:=io.dataIn}
》常用的四行仿真代碼

對于仿真而言,無非是數據激勵的注入與信號的讀取。而針對SpinalEnum,數據的注入與讀取可以采用如下方式:

import spinal.core.sim._object EnumDemoApp extends App{SimConfig.withFstWave.compile(EnumDemo()).doSim{dut=>    dut.io.dataIn#=Num.two    sleep(10)println(s"io.dataOut Value=${dut.io.dataOut.toEnum}")println(s"io.dataOut Value=${dut.io.dataOut.toBigInt}")println(dut.io.dataOut.toEnum==Num.two)  }}

先看仿真結果:

04f5ac90-2bf9-11ed-ba43-dac502259ad0.png

這里信號驅動與讀取代碼一共牽涉到四行。對于SpinalEnum的信號驅動(第4行),我們需用所聲明的Num中具體的Element進行賦值。而在讀取信號時(第6、7行),則可以采用toEnum/toBigInt兩種方式進行。同時對于SpinalEnum信號的判斷,則可以直接用Num中的Element進行對比判斷(第8行)。

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

    關注

    8

    文章

    6892

    瀏覽量

    88827
  • 仿真
    +關注

    關注

    50

    文章

    4043

    瀏覽量

    133416
  • 代碼
    +關注

    關注

    30

    文章

    4748

    瀏覽量

    68349

原文標題:SpinalEnum四行仿真代碼

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

收藏 人收藏

    評論

    相關推薦

    Linux操作系統下常見文件類型分析

    Linux操作系統下常見文件類型分析,壓縮和打包文件,普通文件格式,系統文件
    發表于 01-06 17:00 ?980次閱讀

    【初級】labview教程每日一教之數據文件操作+數據類型轉換

    點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程12數據文件操作:1.理解文件I/02.文件格式3.高層文件I/O4.底層文件I/O5.實用底層函數進行連續文件操作
    發表于 11-07 10:01

    labview數據類型操作

    labview數據類型操作相關的教程,適合初學者學習使用。
    發表于 11-28 19:08

    C語言指針必須要進行強制類型轉換?

    。既然要通過左值指針來訪問右值指針所指向的數據類型,那么,問題來了,指針在定義的時候,就已經知道自己在加加或者減減操作時應該訪問多少字節的內存,或者加減n時應該跳過多少字節的內存。既然要用左值指針來
    發表于 03-06 04:14

    SpinalHDL的UInt與SInt數據類型能夠進行有符號/無符號數操作

    在Bits的基礎上,SpinalHDL提供了UInt、SInt數據類型,從而能夠進行有符號/無符號數操作。變量定義/初始化UInt/SInt的初始化與Bits類型相似:邏輯
    發表于 07-14 14:45

    掌上電腦操作系統的主要類型

    掌上電腦操作系統的主要類型 掌上電腦的核心是操作系統
    發表于 12-21 17:11 ?626次閱讀

    UNIX操作系統類型

    UNIX操作系統類型 由于Unix操作系統眾所周知的穩定性、可靠性,用來提供各種Internet服務的計算機運行的操作系統占很大比例的是Unix及Unix類
    發表于 12-26 12:02 ?2154次閱讀

    硬盤保護卡的接口類型 /操作系統

    硬盤保護卡的接口類型 /操作系統  接口類型     
    發表于 12-26 15:39 ?686次閱讀

    藍牙的設備類型/操作系統/LED顯示

    藍牙的設備類型/操作系統/LED顯示    設備類型
    發表于 12-28 14:53 ?2170次閱讀

    Variant類型的變量指令說明

    SCL指令:TypeOf(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,該語句輸出是數據類型,在程序中只能用在IF與CA
    的頭像 發表于 03-30 15:13 ?2758次閱讀

    Python對txt進行讀寫操作

    Python對txt進行讀寫操作
    的頭像 發表于 01-11 15:16 ?797次閱讀

    遠程數據容災方式類型操作

    電子發燒友網站提供《遠程數據容災方式類型操作.doc》資料免費下載
    發表于 10-25 09:52 ?0次下載
    遠程數據容災方式<b class='flag-5'>類型</b>與<b class='flag-5'>操作</b>

    如何使用原子類型

    一、何為原子操作 原子操作:顧名思義就是不可分割的操作,該操作只存在未開始和已完成兩種狀態,不存在中間狀態; 原子類型:原子庫中定義的數據
    的頭像 發表于 11-10 16:21 ?755次閱讀
    如何使用原子<b class='flag-5'>類型</b>

    修改查詢將clob轉成字符類型

    進行Oracle數據庫查詢時,我們經常會遇到clob類型的數據,這是一種用于存儲大型字符數據的數據類型。在一些情況下,我們可能需要將clob類型的數據轉換為字符
    的頭像 發表于 11-21 11:31 ?810次閱讀

    java有比long還大的類型

    。它使用內部的數組來存儲大整數并提供了相應的操作方法。BigInteger 類型的大小是沒有限制的,因此可以表示比long更大范圍的整數。它提供了各種算術、位操作等方法,可以進行各種計
    的頭像 發表于 11-30 11:25 ?2924次閱讀