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

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

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

3天內不再提示

SpinalHDL語法篇之Bool類型

傅里葉的貓 ? 來源:傅里葉的貓 ? 作者: 張大俠 ? 2022-10-31 10:56 ? 次閱讀

作為SpinalHDL語法篇的第一節,我們也從最簡單的開始。

Bool類型定義

Bool類型就是Verilog中的單bit類型,定義方式如下:

Syntax Description Return
Bool() 創建Bool類型變量 Bool
True 創建Bool類型變量,并賦值true Bool
False 創建Bool類型變量,并賦值false Bool
Bool(value: Boolean) 創建Bool類型變量,并使用Scala表達式賦值 Bool

Example:

vala=Bool()
valb=True
valc=False
vald=Bool(1>2)

生成的Verilog代碼如下:

wirea;
wireb;
wirec;
wired;

assignb=1'b1;
assignc=1'b0;
assignd=1'b0;

邏輯運算

下圖為官方的邏輯運算解釋,也不翻譯了,很容易理解。

Operator Description Return type
!x Logical NOT Bool
x && y Logical And Bool
x & y Logical And Bool
x || y Logical OR Bool
x | y Logical OR Bool
x ^ y Logical XOR Bool
x.set[()] Set x to True Bool
x.clear[()] Set x to False Bool
x.setWhen(cond) Set x when cond is True Bool
x.clearWhen(cond) Clear x when cond is True Bool
x.riseWhen(cond) Set x when x is False and cond is True Bool
x.fallWhen(cond) Clear x when x is True and cond is True Bool

vale=a&b
valf=a|b
valg=a^b
valh=!a

vali=Bool()
i.set()
valj=Bool()
j.clear()

valk=True#這里必須有初值,否則下一句會報錯
k.clearWhen(b)

vall=True
when(b){
l:=False
}

valm=RegInit(False)#關于寄存器類型,這里先熟悉一下,后面章節會講到
m.riseWhen(b)

邊緣檢測

Operator Description Return type
x.edge[()] Return True when x changes state Bool
x.edge(initAt: bool) Same as x.edge but with a reset value Bool
x.rise[()] Return True when x was low at the last cycle and is now high Bool
x.rise(initAt: Bool) Same as x.rise but with a reset value Bool
x.fall[()] Return True when x was high at the last cycle and is now low Bool
x.fall(initAt: Bool) Same as x.fall but with a reset value Bool
x.edges[()] Return a bundle (rise, fall, toggle) BoolEdges
x.edges(initAt: Bool) Same as x.edges but with a reset value BoolEdges

vala=Bool()
valb=False
when(a.edge()){
b:=True
}
valc=a.edge(False)

轉換后的代碼為:

moduleDemoBool(
inputclk,
inputreset
);

wirea;
regb;
rega_regNext;
wirewhen_DemoBool_l35;
rega_regNext_1;
wirec;

always@(*)begin
b=1'b0;
if(when_DemoBool_l35)begin
b=1'b1;
end
end

assignwhen_DemoBool_l35=(a^a_regNext);
assignc=(a^a_regNext_1);
always@(posedgeclk)begin
a_regNext<=?a;
??end

??always?@(posedge?clk?or?posedge?reset)?begin
????if(reset)?begin
??????a_regNext_1?<=?1'b0;
????end?else?begin
??????a_regNext_1?<=?a;
????end
??end

endmodule
valedgeBundle=myBool_2.edges(False)
when(edgeBundle.rise){
//dosomethingwhenarisingedgeisdetected
}
when(edgeBundle.fall){
//dosomethingwhenafallingedgeisdetected
}
when(edgeBundle.toggle){
//dosomethingateachedge
}

數值比對

Operator Description Return type
x === y Equality Bool
x =/= y Inequality Bool

審核編輯:湯梓紅

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

    關注

    28

    文章

    1351

    瀏覽量

    110250
  • HDL
    HDL
    +關注

    關注

    8

    文章

    328

    瀏覽量

    47432

原文標題:SpinalHDL語法篇之Bool類型

文章出處:【微信號:傅里葉的貓,微信公眾號:傅里葉的貓】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    至芯科技altera 系列FPGA教程 第八 verilog基礎語法

    至芯科技altera 系列FPGA教程 第八 verilog基礎語法
    發表于 08-11 03:24

    verilog語法練習實踐

    verilog語法練習晉級
    發表于 09-02 13:40

    STM32如何去使用bool類型

    Q:STM32 如何使用bool類型?通常進行stm32相關編程的時候,bool類型表現更加直白,但編程過程中又不能直接使用,就可以參照工程中的頭文件進行添加定義。如:stm32f10
    發表于 08-04 08:10

    bool定義的類型

    []bool定義的類型只有真和假兩種值。[]Static申明的局部變量,存儲在靜態存儲區。靜態局部變量的初始化語句塊第一次執行起作用。在隨后的運行過程中,變量將保持上一次執行的值。[]枚舉
    發表于 08-12 07:11

    請問在C語言中如何使用bool類型

    在C語言中如何使用bool類型
    發表于 10-22 07:20

    SpinalHDL里switch方法有何用處呢

    可以更快速高效的實現tkeep到byteCnt的轉換:SpinalHDL在生成RTL時,僅SpinalHDL提供的語法會生成RTL電路,而其他代碼則是起指導生成電路的作用,在上面代碼里
    發表于 06-22 14:25

    SpinalHDL中定義各種各樣的復合數據類型

    通過繼承Bundle,在SpinalHDL中我們可以定義各種各樣的復合數據類型。今天,關于Bundle的幾個容易被忽略的點,一同來看下。》Bundle個人在使用SpinalHDL來描述電路時,凡是
    發表于 06-28 15:21

    SpinalHDL中關于casez的使用

    我們常常采用?表示我們不關心的位,而在SpinalHDL中,也存在這么一種表示方式。SpinalHDL整體的數據結構如下圖所示:針對BitVector及其子類,SpinalHDL定義了一種特殊的
    發表于 07-06 10:59

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

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

    SpinalHDL中Bundle與普通數據類型之間的連接賦值轉換

    SpinalHDL中Bundle與SystemVerilog中的packed struct很像,在某些場景下,與普通數據類型之間的連接賦值可以通過asBits,assignFromBits來實現
    發表于 10-18 14:22

    硬件語法

    硬件語法,VHDL資料,又需要的下來看看
    發表于 08-08 15:17 ?26次下載

    KEIL-MDK和STM32的數據類型-入門pdf資料下載

    數據類型-入門
    發表于 04-14 10:50 ?7次下載
    KEIL-MDK和STM32的數據<b class='flag-5'>類型</b>-<b class='flag-5'>之</b>入門<b class='flag-5'>篇</b>pdf資料下載

    SpinalHDL中的對應關系及聲明形式

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

    SpinalHDL中Bundle數據類型的轉換

    SpinalHDL中Bundle與SystemVerilog中的packed struct很像,在某些場景下,與普通數據類型之間的連接賦值可以通過asBits,assignFromBits來實現。
    的頭像 發表于 10-17 09:51 ?1350次閱讀

    SpinalHDL語法Bool類型

    作為SpinalHDL語法的第一節,我們也從最簡單的開始。 Bool類型定義
    的頭像 發表于 05-05 16:01 ?638次閱讀
    主站蜘蛛池模板: 91精品欧美一区二区三区| 97人妻无码AV碰碰视频| 西施打开双腿下面好紧| 亚洲一区在线视频观看| 天天躁日日躁狠狠躁午夜剧场| 美女内射少妇一区二区四区| 欧美三级黄色大片| 蜜桃日本免费观看MV| 深喉吞精日本| 校园刺激全黄H全肉细节文| 中文在线观看| 又硬又粗又大一区二区三区视频| 伊人久久大香线蕉avapp下载| 成人在线免费观看| 国产成人免费观看在线视频| 亚洲国产在线播放在线| 亚洲人成网77777色在线播放| av狼新人开放注册区| 成人免费网址在线| 久久久久久电影| 午夜伦4480yy妇女久久| 亚洲精品无码午夜福利在线观看| gogogo在线观看| 久久日本精品在线热| 性欧美金发洋妞xxxxbbbb| MATURETUBE乱妇| 美女厕所撒尿ass| 越南美女内射BBWXZ| AV72啪啪网站| 麻豆国产自制在线观看| 亚洲视频在线看| 国产剧情麻豆mv| 搡女人免费免费视频观看| 亚洲精品免费在线视频| 丰满的大白屁股ass| 红桃传媒少妇人妻网站无码抽插| 果冻传媒在线看免费高清| 久久精品熟女亚洲AV国产| 亚洲 欧美 清纯 校园 另类 | 老师在讲桌下边h边讲课| 亚洲乱码日产精品BD在线下载|