色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

在SpinalHDL電路中進行信號的賦值

冬至配餃子 ? 來源:Spinal FPGA ? 作者:玉騏 ? 2022-07-28 18:16 ? 次閱讀

對于SpinalHDL電路描述,信號的賦值不免有些小伙伴帶有些許迷茫,本篇抽絲剝繭,一塊兒來梳理。

是val還是var?

先來看兩個語法:

poYBAGLiYUaAerlMAAAxyFuFyMg400.png

對于變量a,聲明為val,在對其進行第二次賦值時發現會報錯,而聲明為var的變量則正常。在Scala里,對于val和var的定義:

**val:不可變變量類型。

var:可變變量類型

這似乎與我們在其他語言中所接觸的有些沖突,變量是不可變的為什么還叫變量呢?Scala是一門函數式編程語言,而在函數式編程里,其所倡導的往往是變量的賦值僅有一次,對于其他地方不會對該變量進行重新賦值,這也是引入val類型的原因,頗有些C語言中const類型的意味。

而下面的語句:

pYYBAGLiYVyAePMYAABN4KsGDp4153.png

這里變量c聲明為val,其意味著c所指向的地址不可變更,但我們仍可以修改其指向的內容,這也正式為什么我們能對c(0)賦值,而無法再將c指向一個新聲明的Array。

聲明師=,賦值靠:=

有了上面的了解,再回到SpinalHDL電路描述里,我們在描述電路時,無論是寄存器還是Mem、這些都是電路對象,其聲明有且僅應當只有一次,因而我們在定義變量時,往往這么來定義:

pYYBAGLiYW6AFeTiAAAS6hNzlwM758.png

在Scala里一切皆為class,這里我們聲明a為一個UInt對象、b為一個RegNext(a)對象,即這里聲明a、b均為8比特的寄存器,而寄存器本身一旦定義了是不可變的,為val類型。想一想倘若一會兒將a聲明為8bit寄存器,一會兒聲明為9比特寄存器,像Verilog中這么寫:

pYYBAGLiYYKAE1_nAAARNt06Qp4376.png

想必沒人會在Verilog中這么來寫吧。同理,在SpinalHDL里,我們聲明一個電路對象時,自然是=。

雖然電路對象不可改,就像聲明了a是8bit,其一定是8bit,但這8bit所代表的值是可以改變的!!!這也正是我們描述電路里的賦值。

SpinalHDL里為電路對象的賦值提供了三種形式:

pYYBAGLiYZeABewYAACSCwiQpKs514.png

我們是為電路對象所代表的值進行賦值,而不是改變電路對象本身(把電路對象指向另一個對象,想一想是否和上面Array的賦值有點兒類似),因而這里我們是不能用=(=在Scala中本身也是一個方法,是改變變量指向的位置,玩不可行),因而所要采用的是SpinalHDL中提供的:=或者\=來給電路對象所代表的含義進行賦值:

pYYBAGLiYauAKkVMAAAeLVny_28278.png

由于只有聲明為Reg類型的變量才會被當成寄存器類型,這里即可放心使用“:=”。

小結

勸君莫懼Scala,我們在電路描述里用到的語法特性并不多,若有systemverilog的基礎那么對于這類軟件語言入門沒那么可怕,畢竟又不是去轉大數據不是么?


審核編輯:劉清

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

    關注

    31

    文章

    5390

    瀏覽量

    121847
  • C語言
    +關注

    關注

    180

    文章

    7618

    瀏覽量

    138573
  • 編程語言
    +關注

    關注

    10

    文章

    1952

    瀏覽量

    35236
收藏 0人收藏

    評論

    相關推薦

    使用PicoScope4444進行心跳信號測試

    幾乎示波器測量的每個信號都包含一些不需要的噪聲。測量小信號或連接到高阻抗節點時,噪聲有時會超過您希望測量的信號。通常的解決方案是進行差分測
    的頭像 發表于 02-08 17:24 ?211次閱讀
    使用PicoScope4444<b class='flag-5'>進行</b>心跳<b class='flag-5'>信號</b>測試

    數組名之間可以直接賦值

    ; ????return 0;} 想把數組 a 里面的數據全部賦值給 b,寫成 b = a 行不行? 和這個問題類似的還有,數組名為什么不能進行 ++ 操作? char?array[5]?=?{0};array++; 比如
    的頭像 發表于 11-26 11:23 ?265次閱讀

    信號放大基礎:什么是信號放大,如何正確地進行信號放大

    就是放大之前對信號進行偏移。舉例來說,輸入波形的中心電壓為 0 V,峰峰值振幅為 5 V。我們可以使用以下電路將其拉高: 我們來做一個實驗,使用相同值的 R1 和 R2,阻值為 1
    發表于 11-21 17:35

    ADS131M03的寄存器讀寫是要在轉換觸發的中斷中進行配置,還是可以standby狀態下進行

    我使用32位M4單片機,通過SPI總線與AD進行通信。 基本情況: ADC外接晶振8.192MHz,晶振信號板子上電后一直連著ADC的時鐘引腳,片選信號通過單片機CS程序控制,SP
    發表于 11-13 07:08

    FPGA無芯片怎么進行HDMI信號輸入

    FPGA 無外部PHY芯片情況下輸出HDMI,目前是比較成熟的方案(外部電路需要轉換成TMDS電平)。無PHY芯片情況下怎么進行HDMI信號
    的頭像 發表于 10-24 18:11 ?1785次閱讀
    FPGA無芯片怎么<b class='flag-5'>進行</b>HDMI<b class='flag-5'>信號</b>輸入

    進行高速信號放大設計時,往往需要用到反饋電路,是否反饋電路越短越好?

    進行高速信號放大設計時,往往需要用到反饋電路,是否反饋電路越短越好,不同封裝是否在這方面有不同優勢?
    發表于 09-26 07:55

    使用霍爾效應傳感器電子智能鎖中進行位置感應應用說明

    電子發燒友網站提供《使用霍爾效應傳感器電子智能鎖中進行位置感應應用說明.pdf》資料免費下載
    發表于 09-12 14:03 ?0次下載
    使用霍爾效應傳感器<b class='flag-5'>在</b>電子智能鎖<b class='flag-5'>中進行</b>位置感應應用說明

    如何利用模擬電路對方波信號進行移相?

    比較常用的移相網絡就是直接用一個全通電路對固定頻率的正弦信號進行移相,但是對于方波信號而言因為本身包含很多諧波分量,不同頻率的諧波相移不同,導致輸出波形發生失真,那么對于方波
    發表于 09-11 08:00

    使用THS4531驅動ADC時,THS4531電路無法對信號進行放大的原因?

    和實際工作都能正常,但有時該THS4531 電路無法對信號進行放大,多次上電重啟都無法恢復。使用烙鐵對C4和C5加熱后,或者說用烙鐵焊一下周圍的電路
    發表于 09-05 06:07

    數字電路是對什么信號進行傳輸的

    數字電路是一種電子系統,它使用數字信號進行信息傳輸和處理。數字信號是由離散的電壓水平或電流水平表示的信號,通常用二進制代碼表示。與模擬
    的頭像 發表于 08-11 11:00 ?1065次閱讀

    INA321放大器輸出不了信號是怎么回事?如何解決?

    電路連接如上圖,仿真TINA-Ti中進行的,放大倍數和結果都是可以的 但打板之后,信號輸入之后,電路沒有
    發表于 08-09 07:13

    IAR用PD_ODR_ODR3 = CPU_CCR_C; 無法賦值成功的原因?

    IAR用PD_ODR_ODR3 = CPU_CCR_C;無法賦值成功,仿真中看到 CPU_CCR_C的值是有變化的,但是賦值到PD_ODR_ODR3時,PD_ODR_ODR3總是等于0。PD_ODR_ODR3=1;這樣正常
    發表于 05-15 07:45

    STM32CubeIDE開發LWIP,IP靜態地址的賦值問題求解

    使用STM32Cube,進行開發。lWIP中設定靜態地址。自動代碼生成時,其中IP_ADDRESS,NETMASK_ADDRESS, GATEWAY_ADDRESS這三個值是什么地方賦值
    發表于 04-12 06:15

    為什么指針之間不要隨意賦值呢?

    指針之間也不能隨意賦值
    的頭像 發表于 03-28 17:13 ?813次閱讀
    為什么指針之間不要隨意<b class='flag-5'>賦值</b>呢?

    淺析SpinalHDL中Pipeline中的復位定制

    之前有系列文章介紹了SpinalHDL中Pipeline的使用,最近在一個功能模塊中真實的使用了這個lib。
    的頭像 發表于 03-17 17:31 ?1178次閱讀
    淺析<b class='flag-5'>SpinalHDL</b>中Pipeline中的復位定制
    主站蜘蛛池模板: 精品一卡2卡三卡4卡乱码精品视频 | 一区二区三区毛AAAA片特级 | 野花日本韩国视频免费高清观看 | 亚洲欧美日韩综合影院 | 奇米色偷偷 | 国产毛片A级久久久不卡精品 | 一二三四韩国免费观看 | 欧美性狂猛bbbbbbxxxx | 亚洲精品视频在线免费 | 欧美一区二区三区不卡免费 | 亚洲精品久久一区二区三区四区 | 91偷偷久久做嫩草电影院 | 息与子在线交尾中文字幕 | 蜜臀AV久久国产午夜福利软件 | 日本亚洲精品色婷婷在线影院 | 热思思| 97视频精品| 久久久性色精品国产免费观看 | 老师破女学生特级毛片 | 国产精彩视频在线 | a视频在线观看 | 国产乱码精品一区二区三区四川 | 蜜芽tv在线观看免费网站 | 国产精品久久久久精品A片软件 | 欧美性极品黑人hd | 伊人在线视频 | 亚洲AV久久久噜噜噜噜 | 99pao成人国产永久免费视频 | 久久视热频国产这里只有精品23 | 在教室伦流澡到高潮HNP视频 | 爽爽影院免费观看 | 性色爽爱性色爽爱网站 | 无人区尖叫之夜美女姐姐视频 | 亚洲中文久久久久久国产精品 | 国产女人视频免费观看 | 99热在线免费观看 | 国产毛A片久久久久久无码 国产毛A片啊久久久久久A | 色婷婷亚洲精品天天综合影院 | 一本色道久久综合亚洲精品加 | 娇妻让壮男弄的流白浆 | 国产互换后人妻的疯狂VIDEO |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品