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

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

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

3天內不再提示

關于Verilog語法你不知道的方法

FPGA之家 ? 來源:開源博客 ? 作者:電子電路開發學習 ? 2021-03-21 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

動態截取固定長度數據語法,即+:和-:的使用,這兩個叫什么符號呢?運算符嗎?

Verilog比較方便的一個特點就是數據的截取和拼接功能了,截取使用方括號[],拼接使用大括號{},例如

reg [7:0] vect; wire a; wire [3:0] b, wire [5:0] c; assign a = vect[1]; //取其中1Bit assign b[3:0] = vect[7:4];//截取4Bit assing c[5:0] = {a, b[3:0], 1‘b1}; //拼接

于是舉一反三(zi zuo cong ming),為了實現動態截取固定長度數據的功能,使用軟件編程的思維寫了如下語句,功能很好理解,根據cnt的值,每次截取vect的5Bit數據。:

reg [7:0] vect; reg [1:0] cnt; wire [4:0] out; assign out = vect[cnt+4:cnt];

一頓操作猛如虎,編譯一看傻如狗。使用ModelSim編譯之后,提示有如下語法錯誤:

** Error: test.v(10): Range must be bounded by constant expressions.

提示vect的范圍必須為常量表達式。也就是必須為,vect[6:2]或vect[7:4],不能是vect[a:0],vect[4:b],或vect[a:b]。額,這該怎么辦呢?

既然有這個使用場景,那Verilog在設計之初就應該會考慮到這個應用吧!于是就去翻IEEE的Verilog標準文檔,在5.2.1章節發現了一個用法可以實現我這個需求,那就是+:和-:符號,這個用法很少,在大部分關于FPGA和Verilog書籍中都沒有提到。

大致意思就是,可以實現動態截取固定長度的數據,基本語法為:

vect[base+:width]或[base-:width]

其中base可以為變量,width必須為常量。

下面來舉幾個例子來理解這個符號。

有如下定義:

reg [7:0] vect_1; reg [0:7] vect_2; wire [2:0] out;

以下寫法分別表示什么呢?

vect_1[4+:3]; vect_1[4-:3]; vect_2[4+:3]; vect_2[4-:3];

分為三步:

1.先看定義。

vect_1[7:0]定義是大端模式,則vect_1[4+:3]和vect_1[4-:3]轉換后也一定為大端模式;vect_2[0:7]定義是小端模式,則vect_2[4+:3]和vect_2[4-:3]轉換后也一定為小端模式。

2.再看升降序。

其中+:表示升序,-:表示降序

3.看寬度轉換。

vect_1[4+:3]表示,起始位為4,寬度為3,**升序**,則vect_1[4+:3] = vect_1[6:4] vect_1[4-:3]表示,起始位為4,寬度為3,**降序**,則vect_1[4-:3] = vect_1[4:2]

90395bd0-8925-11eb-8b86-12bb97331649.jpg

同理,

vect_2[4+:3]表示,起始位為4,寬度為3,升序,則vect_2[4+:3] = vect_2[4:6] vect_2[4-:3]表示,起始位為4,寬度為3,降序,則vect_2[4-:3] = vect_2[2:4]

90935130-8925-11eb-8b86-12bb97331649.jpg

ModelSim仿真驗證,新建test.v文件:

module test; reg [7:0] vect_1; reg [0:7] vect_2; initial begin vect_1 = ’b0101_1010; vect_2 = ‘b0101_1010; $display(“vect_1[7:0] = %b, vect_2[0:7] = %b”, vect_1, vect_2); $display(“vect_1[4+:3] = %b, vect_1[4-:3] = %b”, vect_1[4+:3], vect_1[4-:3]); $display(“vect_2[4+:3] = %b, vect_2[4-:3] = %b”, vect_2[4+:3], vect_2[4-:3]); $stop; end endmodule

在ModelSim命令窗口輸入:

//進入到源文件所在文件夾 cd c:/users/whik/desktop/verilog //編譯 vlog test.v //仿真 vsim work.test //運行 run -all //運行結果 # vect_1[7:0] = 01011010, vect_2[0:7] = 01011010 # vect_1[4+:3] = 101, vect_1[4-:3] = 110 # vect_2[4+:3] = 101, vect_2[4-:3] = 011 # ** Note: $stop : test.v(15) # Time: 0 ps Iteration: 0 Instance: /test # Break in Module test at test.v line 15

這種語法表示需要注意,前者起始位可以是變量,后者的寬度必須是常量,即vect[idx+:cnt]不符合語法標準,vect[idx+:4]或vect[idx-:4]才符合。
編輯:lyn

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

    關注

    29

    文章

    1367

    瀏覽量

    112346
  • 編程
    +關注

    關注

    88

    文章

    3689

    瀏覽量

    95322

原文標題:這個Verilog語法你一定不知道

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    編譯錯誤: error: unrecognizable insn,不知道原因,請教!

    用start_gui.exe生成的代碼,再用SEGGER Embedded打開,編譯有錯,不知道是什么原因,請教各位大佬?
    發表于 06-23 14:45

    不知道怎么畫原理圖了

    時,這樣的問題,也有這么多?!1、電阻的表示方法是第一種,還是第二種?中間是方框還是折線?方框做多大?現場一片混亂立馬分成N派。普通的電阻都這樣,這么多種電阻現
    的頭像 發表于 04-30 18:40 ?422次閱讀
    <b class='flag-5'>不知道</b>怎么畫原理圖了

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能。“編譯預處理”是Verilog HDL編譯系統的一個組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發表于 03-27 13:30 ?639次閱讀
    FPGA <b class='flag-5'>Verilog</b> HDL<b class='flag-5'>語法</b>之編譯預處理

    ADS805E測量跳躍幅度很大,不知道是為什么?

    我按照手冊上直流耦合連接電路,輸入是1.5V~3.5V范圍,SEL與VREF相連,用430定時器輸出轉換時鐘,結果測量直流時,AD測量結果在幾個值之間跳躍,跳躍幅度很大,不知道是為什么,引腳電壓控制用3.3V。
    發表于 01-21 07:46

    測的值不定然后開始減小直到為0,不知道怎么回事?

    ADS1247對寄存器可讀可寫 可是配置完02這個地址的時(寫0x30)在vrefout測不到2.048v,測的值不定然后開始減小直到為0,不知道怎么回事?
    發表于 01-21 06:27

    壓力變送器接線方法不知道

    壓力變送器
    jzyb
    發布于 :2024年12月18日 10:44:17

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    Verilog測試平臺設計方法Verilog FPGA開發中的重要環節,它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog
    的頭像 發表于 12-17 09:50 ?1167次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog語法更接近于 C 語言,對于有 C 語言背景的工程
    的頭像 發表于 12-17 09:44 ?1729次閱讀

    有關UV固化不知道的技術細節

    UV固化技術中,光引發劑吸收UV光產生活性自由基觸發聚合反應,包括鏈引發、增長、終止和交聯。反應速率受UV光強、光引發劑濃度、單體類型等因素影響,UV固化技術具有快速固化特性。
    的頭像 發表于 12-06 09:33 ?938次閱讀

    Verilog硬件描述語言參考手冊

    一. 關于 IEEE 1364 標準二. Verilog簡介三. 語法總結四. 編寫Verilog HDL源代碼的標準五. 設計流程
    發表于 11-04 10:12 ?4次下載

    Verilog語法中運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發表于 10-25 15:17 ?2591次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>語法</b>中運算符的用法

    Verilog HDL的基礎知識

    本文繼續介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環語句、同步與異步、函數與任務語法知識。
    的頭像 發表于 10-24 15:00 ?1214次閱讀
    <b class='flag-5'>Verilog</b> HDL的基礎知識

    關于陶瓷電路板不知道的事

    陶瓷電路板(Ceramic Circuit Board),又稱陶瓷基板,是一種以陶瓷材料為基體,通過精密的制造工藝在表面形成電路圖形的高技術產品,快來看看哪些是您還不知道的事?
    的頭像 發表于 10-21 11:55 ?1021次閱讀
    <b class='flag-5'>關于</b>陶瓷電路板<b class='flag-5'>你</b><b class='flag-5'>不知道</b>的事

    又一電工不知道,施耐德變頻器怎么復位,如果不告訴知道怎么復位嗎?

    維修 我給他說,可能以前沒接觸過施耐德的變頻器,就不知道它還有一個蓋子,要復位的話,就要把蓋子打開,第一次找不到也正常,要是經常斷電重啟的話,對設備不好。 變頻器修理 之所以分享給大家,就是想告訴那些沒接觸過施耐
    的頭像 發表于 10-12 15:15 ?1202次閱讀
    又一電工<b class='flag-5'>不知道</b>,施耐德變頻器怎么復位,如果不告訴<b class='flag-5'>你</b>,<b class='flag-5'>你</b><b class='flag-5'>知道</b>怎么復位嗎?

    AMC1100使用前需要烘烤,不知道烘烤溫度和烘烤時間是多少?

    1:AMC1100使用前需要烘烤,但是不知道 烘烤溫度和烘烤時間是多少?能在datasheet上查看到嗎? 2:datasheet上 MSL參數 Level-1-260C-UNLIM中UNLIM
    發表于 08-09 08:11
    主站蜘蛛池模板: 成人国产精品视频频 | 国精一区二区AV在线观看网站 | 野花香在线观看免费高清播放视频 | 久久re视频这里精品青 | 久久成人亚洲 | 亚洲精品天堂在线 | 吉吉影音先锋av资源网 | 亚洲精品无码AAAAAA片 | 最近中文字幕2018MV高清在线 | 亚洲 无码 制服 日韩 | 老司机亚洲精品影院 | 久久久久亚洲日日精品 | 又大又硬又爽免费视频 | 超碰在线视频地址 | 黑丝制服影院 | 成人在无码AV在线观看一 | 九九99亚洲精品久久久久 | 老鸭窝毛片 | 纯肉高H啪短文合集 | 久久久久综合网久久 | 美女在线永久免费网站 | 成人免费视频在线 | 双性精跪趴灌满h室友4p | 国产喷水1区2区3区咪咪爱AV | 亚洲人成网站在线播放 | 一本色道久久综合亚洲精品 | 干性感美女 | 私密按摩师在线观看 百度网盘 | 伊人久久丁香色婷婷啪啪 | 99九九精品视频 | 亚洲精品一卡二卡三卡四卡2021 | 我的奶头被客人吸的又肿又红 | 凌馨baby| 亚洲狠狠网站色噜噜 | 男人桶女人j的视频在线观看 | 超碰97人人做人人爱网站 | 日本久久频这里精品99 | 叔叔 电影完整版免费观看韩国 | 久久成人免费观看草草影院 | 92午夜免费福利757 | yellow在线中文 |

    電子發燒友

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

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