国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

動(dòng)態(tài)截取固定長(zhǎng)度數(shù)據(jù)語(yǔ)法,即+:和-:的使用,這兩個(gè)叫什么符號(hào)呢?運(yùn)算符嗎?

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

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),為了實(shí)現(xiàn)動(dòng)態(tài)截取固定長(zhǎng)度數(shù)據(jù)的功能,使用軟件編程的思維寫(xiě)了如下語(yǔ)句,功能很好理解,根據(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編譯之后,提示有如下語(yǔ)法錯(cuò)誤:

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

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

既然有這個(gè)使用場(chǎng)景,那Verilog在設(shè)計(jì)之初就應(yīng)該會(huì)考慮到這個(gè)應(yīng)用吧!于是就去翻IEEE的Verilog標(biāo)準(zhǔn)文檔,在5.2.1章節(jié)發(fā)現(xiàn)了一個(gè)用法可以實(shí)現(xiàn)我這個(gè)需求,那就是+:和-:符號(hào),這個(gè)用法很少,在大部分關(guān)于FPGA和Verilog書(shū)籍中都沒(méi)有提到。

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

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

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

下面來(lái)舉幾個(gè)例子來(lái)理解這個(gè)符號(hào)。

有如下定義:

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

以下寫(xiě)法分別表示什么呢?

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仿真驗(yàn)證,新建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命令窗口輸入:

//進(jìn)入到源文件所在文件夾 cd c:/users/whik/desktop/verilog //編譯 vlog test.v //仿真 vsim work.test //運(yùn)行 run -all //運(yùn)行結(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

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

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

    關(guān)注

    30

    文章

    1374

    瀏覽量

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

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97191

原文標(biāo)題:這個(gè)Verilog語(yǔ)法你一定不知道

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Verilog HDL語(yǔ)法學(xué)習(xí)筆記

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

    組合導(dǎo)航不知道怎么選,看這里

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

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

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

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

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

    覺(jué)得哪個(gè)軟件寫(xiě)verilog體驗(yàn)最好?有什么優(yōu)勢(shì)?

    覺(jué)得哪個(gè)軟件寫(xiě)verilog體驗(yàn)最好?有什么優(yōu)勢(shì)?請(qǐng)?jiān)谠u(píng)論區(qū)留言跟大家分享一下吧。
    發(fā)表于 11-10 07:47

    語(yǔ)法糾錯(cuò)和testbench的自動(dòng)生成

    在編寫(xiě)Verilog代碼時(shí),我一般都是先在編輯器上寫(xiě)完,因?yàn)榫庉嬈鱲scode或者notepad++可以提供語(yǔ)法高亮和自動(dòng)補(bǔ)全等功能,然后用仿真器跑仿真,但是在編寫(xiě)過(guò)程中不可避免的會(huì)有一些語(yǔ)法的錯(cuò)誤
    發(fā)表于 10-27 07:07

    如何解決將e203的rtl導(dǎo)入vivado后報(bào)語(yǔ)法錯(cuò)誤的問(wèn)題

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

    現(xiàn)在流行來(lái)中國(guó)看賽博朋克

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

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

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

    編譯錯(cuò)誤: error: unrecognizable insn,不知道原因,請(qǐng)教!

    用start_gui.exe生成的代碼,再用SEGGER Embedded打開(kāi),編譯有錯(cuò),不知道是什么原因,請(qǐng)教各位大佬?
    發(fā)表于 06-23 14:45

    不知道怎么畫(huà)原理圖了

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

    不知道的COB封裝測(cè)試方法,快來(lái)看看推拉力測(cè)試機(jī)的應(yīng)用!

    近期,有客戶向小編咨詢推拉力測(cè)試機(jī),如何進(jìn)行COB封裝測(cè)試?在現(xiàn)代電子制造領(lǐng)域,COB(Chip on Board)封裝技術(shù)因其高集成度和靈活性被廣泛應(yīng)用于LED、傳感器、顯示驅(qū)動(dòng)等產(chǎn)品中。然而,COB封裝的可靠性直接決定了產(chǎn)品的使用壽命和性能表現(xiàn)。為了確保COB封裝的質(zhì)量,推拉力測(cè)試成為不可或缺的環(huán)節(jié)。本文科準(zhǔn)測(cè)控小編將詳細(xì)介紹如何利用Alpha W260推拉力測(cè)試機(jī)進(jìn)行COB封裝的推拉力測(cè)試,以及測(cè)試過(guò)程中需要注意的關(guān)鍵點(diǎn)。 什么是COB封裝工藝? COB封裝
    的頭像 發(fā)表于 04-03 10:42 ?1540次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>不知道</b>的COB封裝測(cè)試<b class='flag-5'>方法</b>,快來(lái)看看推拉力測(cè)試機(jī)的應(yīng)用!

    FPGA Verilog HDL語(yǔ)法之編譯預(yù)處理

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

    驅(qū)動(dòng)板響應(yīng)時(shí)間的測(cè)量方法

    你們不知道的是驅(qū)動(dòng)板的響應(yīng)時(shí)間到底應(yīng)該如何測(cè)量?今天我們就來(lái)探討一下新的驅(qū)動(dòng)板知識(shí)。
    的頭像 發(fā)表于 03-13 17:12 ?1367次閱讀

    搞SD卡log打印功能時(shí),打印出來(lái)的每條指令后面不知道為啥會(huì)帶[0m后綴?

    搞SD卡log打印功能時(shí),打印出來(lái)的每條指令后面不知道為啥會(huì)帶[0m后綴,如圖所示: 哪位大佬教一下怎么去
    發(fā)表于 03-12 06:17