日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

冬至配餃子 ? 來源:Spinal FPGA ? 作者:玉騏 ? 2022-07-28 18:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

是val還是var?

先來看兩個語法:

poYBAGLiYUaAerlMAAAxyFuFyMg400.png

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

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

var:可變變量類型

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

而下面的語句:

pYYBAGLiYVyAePMYAABN4KsGDp4153.png

這里變量c聲明為val,其意味著c所指向的地址不可變更,但我們?nèi)钥梢孕薷钠渲赶虻膬?nèi)容,這也正式為什么我們能對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類型的變量才會被當成寄存器類型,這里即可放心使用“:=”。

小結(jié)

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


審核編輯:劉清

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

    關(guān)注

    31

    文章

    5620

    瀏覽量

    130455
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7646

    瀏覽量

    146202
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1965

    瀏覽量

    39892
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    厚聲電阻RT0603FR-071KRL信號調(diào)理電路中的應用

    RT0603FR-071KRL并非厚聲電阻的標準型號,若以國巨同規(guī)格電阻(如RC0603FR-071KL)為參考,其信號調(diào)理電路中可承擔阻抗匹配、分壓偏置、濾波、限流保護等基礎功能,但需結(jié)合具體
    的頭像 發(fā)表于 04-02 17:12 ?432次閱讀
    厚聲電阻RT0603FR-071KRL<b class='flag-5'>在</b><b class='flag-5'>信號</b>調(diào)理<b class='flag-5'>電路</b>中的應用

    使用MATLAB和Simulink進行信號完整性分析

    信號完整性是保持高速數(shù)字信號的質(zhì)量的過程。信號完整性是衡量電信號從源傳輸?shù)侥繕宋恢脮r的質(zhì)量的關(guān)鍵度量。高速數(shù)字和模擬電子中,確保
    的頭像 發(fā)表于 01-23 13:57 ?8850次閱讀
    使用MATLAB和Simulink<b class='flag-5'>進行</b><b class='flag-5'>信號</b>完整性分析

    VSCode 中進行 CW32L010 MCU 的開發(fā),應該如何配置環(huán)境?

    我想在 VSCode 中進行 CW32L010 MCU 的開發(fā),應該如何配置環(huán)境?
    發(fā)表于 11-24 07:17

    PWM周期和占空比是否可以程序中進行調(diào)節(jié)?

    PWM周期和占空比是否可以程序中進行調(diào)節(jié)
    發(fā)表于 11-20 07:50

    電容電源電路、音頻電路、射頻電路中的作用

    電源濾波、信號濾波、信號耦合、諧振、濾波、補償、充放電、儲能、隔離直流電路中都有應用。 ? ? ? ? 電子產(chǎn)品,電容無疑是一種不可或缺的器件,其廣泛應用于電源電路、音頻
    的頭像 發(fā)表于 11-17 17:47 ?1890次閱讀

    如何在Zephyr中進行靜態(tài)代碼分析

    嵌入式軟件開發(fā)中,“能編譯通過”并不等于“可以放心交付”。安全性、可靠性和合規(guī)性是產(chǎn)品能否順利量產(chǎn)的關(guān)鍵。進入量產(chǎn)的Bug會浪費寶貴的工程時間,也會削弱用戶信任;安全漏洞可能暴露設備,帶來嚴重后果;受監(jiān)管市場中,若未滿足MISRA或CERT檢查要求,甚至會直接導致產(chǎn)品
    的頭像 發(fā)表于 10-17 10:28 ?1080次閱讀

    中斷處理程序中進入掉電模式需要注意什么?

    中斷處理程序中進入掉電模式需要注意什么?
    發(fā)表于 08-26 07:46

    請問中斷處理程序中進入掉電模式需要注意什么?

    中斷處理程序中進入掉電模式需要注意什么?
    發(fā)表于 08-21 06:20

    使用DAP miniWiggleADS中進行對代碼的工程下載以及進入調(diào)試模式進行調(diào)試,需要安裝配置什么環(huán)境?

    如題,現(xiàn)在想使用DAP miniWiggleADS中進行對代碼的工程下載以及進入調(diào)試模式進行調(diào)試,請問需要安裝配置什么環(huán)境以及相關(guān)的有什么操作步驟,感謝解答
    發(fā)表于 07-31 06:08

    射頻電路信號有什么影響

    射頻電路,聽起來是不是有點高大上?其實它就在我們身邊,手機信號、無線網(wǎng)絡,都離不開它的功勞。今天,咱們就來好好聊聊,射頻電路到底是干啥的,它對信號又會有什么影響。
    的頭像 發(fā)表于 07-16 11:00 ?1980次閱讀
    射頻<b class='flag-5'>電路</b>對<b class='flag-5'>信號</b>有什么影響

    matlab appdesigner 表格組件賦值問題,求助

    如上圖所示,我在用matlab2021Ra APP模塊進行編程的時候,想在表格中調(diào)入自己編寫的結(jié)構(gòu)數(shù)組,我從網(wǎng)上AI了一個程序語句,看著沒問題,但是就是給表格賦值不了,還請各位大神幫忙看一下這個是怎么回事,我是初學者,請各位幫忙看看
    發(fā)表于 07-12 11:45

    信號發(fā)生器泰克AFG31000系列模擬電路檢定中的應用

    模擬電路作為電子系統(tǒng)的基礎組成部分,其性能直接關(guān)系到整個系統(tǒng)的可靠性和穩(wěn)定性。模擬電路的研發(fā)、生產(chǎn)及維護過程中,精確的信號源是進行參數(shù)測量
    的頭像 發(fā)表于 06-18 10:57 ?1076次閱讀
    <b class='flag-5'>信號</b>發(fā)生器泰克AFG31000系列<b class='flag-5'>在</b>模擬<b class='flag-5'>電路</b>檢定中的應用

    信號發(fā)生器AFG31052多載波信號生成中的應用

    優(yōu)勢,為現(xiàn)代通信系統(tǒng)測試、復雜電路驗證及科研實驗提供了可靠的技術(shù)支持。本文將從多載波調(diào)制技術(shù)原理、AFG31052的關(guān)鍵特性及其應用場景三個方面,探討其多載波信號生成中的具體應用與價值。
    的頭像 發(fā)表于 06-07 15:24 ?939次閱讀
    <b class='flag-5'>信號</b>發(fā)生器AFG31052<b class='flag-5'>在</b>多載波<b class='flag-5'>信號</b>生成中的應用

    AN65974vivado 2018.2中進行仿真時, 無法獲取輸出數(shù)據(jù)信號是怎么回事?

    大家好, 我已經(jīng)嘗試過 AN65974 指南 pdf 并下載了 fpga rtl vhdl 文件夾的示例。 我做了一些配置,例如輸入圖像和相關(guān)信號。 vivado 2018.2 中進行仿真
    發(fā)表于 05-12 06:58

    FX3的FLAGA信號,在運行一段時間后,無法拉高怎么解決?

    Thread0所的緩存,上傳上位機。同時,F(xiàn)PGA檢測Thread2中是否有數(shù)據(jù)需要讀取,若有,則將Thread2中的數(shù)據(jù)讀取到FPGA中進行解析。 如下圖,正常運行一段時間后,F(xiàn)LAGA
    發(fā)表于 05-08 07:38
    凯里市| 万年县| 马关县| 横山县| 阿坝县| 田阳县| 石嘴山市| 山西省| 明星| 休宁县| 昌黎县| 道孚县| 浮山县| 班戈县| 米脂县| 洛浦县| 漳平市| 桂东县| 金秀| 裕民县| 荥经县| 米林县| 赞皇县| 武山县| 文安县| 中西区| 黎城县| 新竹县| 塔河县| 大足县| 饶河县| 扬中市| 湾仔区| 新民市| 昌宁县| 彭阳县| 旬阳县| 闽侯县| 宜州市| 温泉县| 繁峙县|