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

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

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

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

關(guān)于Verilog語法你不知道的方法

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

掃碼添加小助手

加入工程師交流群

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

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

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),為了實現(xiàn)動態(tài)截取固定長度數(shù)據(jù)的功能,使用軟件編程的思維寫了如下語句,功能很好理解,根據(jù)cnt的值,每次截取vect的5Bit數(shù)據(jù)。:

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在設(shè)計之初就應(yīng)該會考慮到這個應(yīng)用吧!于是就去翻IEEE的Verilog標準文檔,在5.2.1章節(jié)發(fā)現(xiàn)了一個用法可以實現(xiàn)我這個需求,那就是+:和-:符號,這個用法很少,在大部分關(guān)于FPGA和Verilog書籍中都沒有提到。

大致意思就是,可以實現(xiàn)動態(tài)截取固定長度的數(shù)據(jù),基本語法為:

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]轉(zhuǎn)換后也一定為大端模式;vect_2[0:7]定義是小端模式,則vect_2[4+:3]和vect_2[4-:3]轉(zhuǎn)換后也一定為小端模式。

2.再看升降序。

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

3.看寬度轉(zhuǎn)換。

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 //運行結(jié)果 # 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

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

    關(guān)注

    31

    文章

    1374

    瀏覽量

    114737
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3724

    瀏覽量

    97459

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    SMA接頭老化了只能報廢?分享幾個不知道的維護回春術(shù)

    SMA 連接器性能下降只能報廢?本文由德索精密工業(yè)(Dosin)技術(shù)專家分享四個鮮為人知的射頻接口“回春術(shù)”。從高純酒精深層除垢到阻抗穩(wěn)定性恢復(fù),深度解析如何通過物理維護延長高頻跳線使用壽命。文章附帶詳細的維護效果評估表,助您在保障射頻系統(tǒng)精度的同時,大幅降低 B 端實驗室及工程現(xiàn)場的耗材成本。
    的頭像 發(fā)表于 04-29 15:36 ?332次閱讀
    SMA接頭老化了只能報廢?分享幾個<b class='flag-5'>你</b><b class='flag-5'>不知道</b>的維護回春術(shù)

    【文章轉(zhuǎn)載】不知道的Vector | VectorCAST/C++的AI輔助測試功能

    從2026版本開始,VectorCAST/C++推出首批AI輔助測試功能,旨在幫助開發(fā)團隊解決單元測試過程中的兩個核心難點:1.如何根據(jù)需求描述自動生成可驗證邏輯功能的單元測試用例(Req2test):基于自然語言需求輸入,利用大語言模型自動生成符合測試框架規(guī)范的測試用例代碼,減少手工編寫用例的工作量。2.如何基于現(xiàn)有代碼自動生成單元級別的需求規(guī)格說明(Co
    的頭像 發(fā)表于 04-29 10:03 ?272次閱讀
    【文章轉(zhuǎn)載】<b class='flag-5'>你</b><b class='flag-5'>不知道</b>的Vector | VectorCAST/C++的AI輔助測試功能

    SMB接頭老化了只能扔掉?分享幾個不知道的日常維護「回春術(shù)」

    SMB接頭老化失效只能換新?其實很多時候只是“假死”。本文由擁有10年一線經(jīng)驗的射頻工程師撰寫,深度分享SMB接頭的日常維護“回春術(shù)”。從診斷真假老化、無水乙醇精確清洗,到外導體彈性的物理復(fù)位技巧,全方位解析如何延長連接器使用壽命。結(jié)合德索連接器(Dosin)的精密加工與鈹青銅選材經(jīng)驗,手把手教你降低B端設(shè)備運維成本,解決信號跳變頑疾,純干貨分享,建議收藏。
    的頭像 發(fā)表于 04-27 15:06 ?90次閱讀
    SMB接頭老化了只能扔掉?分享幾個<b class='flag-5'>你</b><b class='flag-5'>不知道</b>的日常維護「回春術(shù)」

    的EMC瓶頸,不是經(jīng)驗不夠,是體系不全

    EMC的EMC瓶頸,不是經(jīng)驗不夠,是體系不全現(xiàn)在的狀態(tài),是不是這樣?產(chǎn)品送測前,心里完全沒底,不知道哪一項會掛傳導發(fā)射超標,換了十幾種電容電感,還是壓不下去靜電打幾下,系統(tǒng)重啟,
    的頭像 發(fā)表于 03-10 16:41 ?488次閱讀
    <b class='flag-5'>你</b>的EMC瓶頸,不是經(jīng)驗不夠,是體系不全

    Verilog HDL語法學習筆記

    Verilog HDL 語 言 最 初 是 作為 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后來被著名的 Cadence Design Systems 公司收購)模擬器產(chǎn)品開發(fā)的硬件建模語言。
    的頭像 發(fā)表于 03-04 15:04 ?5829次閱讀
    <b class='flag-5'>Verilog</b> HDL<b class='flag-5'>語法</b>學習筆記

    組合導航不知道怎么選,看這里

    單一導航難適配復(fù)雜作業(yè)?MEMS組合導航來幫你,通過融合衛(wèi)星定位與慣性測量技術(shù),以“1+1>2”優(yōu)勢破解全行業(yè)導航難題。 我司組合導航提供三種方案可選,從01到03到05,搭載從導航級到戰(zhàn)術(shù)級到消費級MEMS陀螺儀與加速度計,通過微機電技術(shù)集成在毫米芯片上,搭載衛(wèi)星模塊以及其他器件,尺寸僅有65mm*70mm*45.5mm,以下是三種方案詳細介紹: 超高精度方案—ER-GNSS/MINS-01 產(chǎn)品定位 一款擁有測繪級超高精度的組合導航,是市面上采用MEMS技術(shù)組合導航系統(tǒng)中
    的頭像 發(fā)表于 01-08 15:47 ?391次閱讀

    C語言中一些令人震驚的結(jié)構(gòu)介紹

    = a++ + b; 因此, 這段代碼持行后a = 6, b = 7, c = 12。 如果知道答案,或猜出正確答案,做得好。 如果不知道答案,我也不把這個當作問題。我發(fā)
    發(fā)表于 12-23 08:15

    斷電時,的后備電源真能啟動嗎?多數(shù)人不知道的UPS保養(yǎng)真相

    斷電那一刻,的后備電源真的能頂上嗎?深夜,機房警報突然響起,屏幕瞬間熄滅——不是演習,市電真的斷了。所有人的心都提到了嗓子眼,三秒后,服務(wù)器指示燈重新亮起,UPS電源的顯示屏穩(wěn)定地閃爍著運行
    的頭像 發(fā)表于 12-05 13:37 ?2011次閱讀
    斷電時,<b class='flag-5'>你</b>的后備電源真能啟動嗎?多數(shù)人<b class='flag-5'>不知道</b>的UPS保養(yǎng)真相

    覺得哪個軟件寫verilog體驗最好?有什么優(yōu)勢?

    覺得哪個軟件寫verilog體驗最好?有什么優(yōu)勢?請在評論區(qū)留言跟大家分享一下吧。
    發(fā)表于 11-10 07:47

    語法糾錯和testbench的自動生成

    在編寫Verilog代碼時,我一般都是先在編輯器上寫完,因為編輯器vscode或者notepad++可以提供語法高亮和自動補全等功能,然后用仿真器跑仿真,但是在編寫過程中不可避免的會有一些語法的錯誤
    發(fā)表于 10-27 07:07

    如何解決將e203的rtl導入vivado后報語法錯誤的問題

    主要內(nèi)容是介紹一下如何解決將e203的rtl導入vivado后,報語法錯誤的問題。 二、分享內(nèi)容 如圖所示,導入源碼后跑仿真,會報語法錯誤。 這是因為這些文件里面有用system verilog
    發(fā)表于 10-24 09:49

    電話配線架的“隱藏技能”——不知道的五大應(yīng)用場景

    1. 應(yīng)急通信:災(zāi)難中的“生命線” 場景:地震、洪水等災(zāi)害導致基站癱瘓時,配線架可快速切換至衛(wèi)星電話或備用線路。 案例: 2008年汶川地震中,某醫(yī)院通過配線架將內(nèi)部電話系統(tǒng)切換至應(yīng)急電臺,保障醫(yī)療調(diào)度。 2. 數(shù)據(jù)中心:光與電的“翻譯官” 場景:在光纖與銅纜混合的數(shù)據(jù)中心,配線架實現(xiàn)光信號(如SFP模塊)與電信號(如RJ45)的轉(zhuǎn)換。 優(yōu)勢: 統(tǒng)一管理不同介質(zhì)線路,簡化布線復(fù)雜度。 支持高速數(shù)據(jù)傳輸(如40G/100G以太網(wǎng))。 3. 智能家居:全屋電話
    的頭像 發(fā)表于 10-14 10:18 ?544次閱讀

    現(xiàn)在流行來中國看賽博朋克

    中國以外的人不知道中國有多強
    的頭像 發(fā)表于 10-10 22:43 ?4662次閱讀
    現(xiàn)在流行來中國看賽博朋克

    關(guān)于OFDM 不知道的那些事?#OFDM #5G技術(shù) #通信技術(shù)

    通信技術(shù)
    安泰儀器維修
    發(fā)布于 :2025年06月24日 18:31:22

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

    用start_gui.exe生成的代碼,再用SEGGER Embedded打開,編譯有錯,不知道是什么原因,請教各位大佬?
    發(fā)表于 06-23 14:45
    金沙县| 永定县| 东乌| 灵川县| 大足县| 阜阳市| 宁晋县| 长宁区| 屏东市| 远安县| 黔东| 庐江县| 县级市| 汉川市| 和田县| 张家口市| 京山县| 宝鸡市| 乌兰县| 日土县| 新竹县| 乌拉特中旗| 鄂托克旗| 桑植县| 宜州市| 榕江县| 武宣县| 民权县| 波密县| 玉林市| 雷山县| 江永县| 高密市| 西乌珠穆沁旗| 宣恩县| 齐河县| 东丽区| 孝昌县| 兴海县| 唐河县| 兴安县|