18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

    文章

    1369

    瀏覽量

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

    關(guān)注

    89

    文章

    3704

    瀏覽量

    96383

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    關(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 ?703次閱讀
    <b class='flag-5'>不知道</b>怎么畫(huà)原理圖了

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

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

    DLP3010在設(shè)置時(shí)不知道如圖所示的input和output指什么,這樣的img文件從哪得到?

    目的是更改開(kāi)機(jī)圖片,在設(shè)置時(shí)不知道如圖所示的input和output指什么,這樣的img文件從哪得到? 以下是各頁(yè)設(shè)置情況,GUI使用的是3.1.0.3,EVM是2.2.0.6
    發(fā)表于 02-25 07:23

    關(guān)于TI集成電路命名標(biāo)識(shí)那些不知道的事兒

    集成電路
    芯廣場(chǎng)
    發(fā)布于 :2025年01月21日 17:47:40

    關(guān)于射頻導(dǎo)納物位開(kāi)關(guān)不知道的知識(shí)點(diǎn)

    它作為一種重要的工業(yè)自動(dòng)化設(shè)備,在生產(chǎn)領(lǐng)域中扮演者重要的角色,這款物位儀表就是射頻導(dǎo)納物位開(kāi)關(guān),它可以用于測(cè)量和控制物料的位置和數(shù)量。它之所以受歡迎是因?yàn)楫a(chǎn)品的防刮料功能好、測(cè)量數(shù)值準(zhǔn)確、適用的范圍廣,能夠幫助工業(yè)生產(chǎn)領(lǐng)域的人們有效的解決一些傳統(tǒng)物位開(kāi)關(guān)的限制問(wèn)題。 這款物位開(kāi)關(guān)的穩(wěn)定性高、測(cè)量數(shù)值準(zhǔn)、適用場(chǎng)合多等優(yōu)點(diǎn),且他還能配備報(bào)警指示燈等功能,能夠讓用戶更為直觀的獲取到它測(cè)量出來(lái)的數(shù)值信息,方便
    的頭像 發(fā)表于 01-21 13:56 ?704次閱讀
    <b class='flag-5'>關(guān)于</b>射頻導(dǎo)納物位開(kāi)關(guān)<b class='flag-5'>你</b><b class='flag-5'>不知道</b>的知識(shí)點(diǎn)

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

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

    測(cè)的值不定然后開(kāi)始減小直到為0,不知道怎么回事?

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

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

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

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開(kāi)發(fā)指南

    Verilog測(cè)試平臺(tái)設(shè)計(jì)方法Verilog FPGA開(kāi)發(fā)中的重要環(huán)節(jié),它用于驗(yàn)證Verilog設(shè)計(jì)的正確性和性能。以下是一個(gè)詳細(xì)的Verilog
    的頭像 發(fā)表于 12-17 09:50 ?1441次閱讀

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

    Verilog 與 VHDL 比較 1. 語(yǔ)法和風(fēng)格 VerilogVerilog語(yǔ)法更接近于 C 語(yǔ)言,對(duì)于有 C 語(yǔ)言背景的工程
    的頭像 發(fā)表于 12-17 09:44 ?2417次閱讀

    有關(guān)UV固化不知道的技術(shù)細(xì)節(jié)

    UV固化技術(shù)中,光引發(fā)劑吸收UV光產(chǎn)生活性自由基觸發(fā)聚合反應(yīng),包括鏈引發(fā)、增長(zhǎng)、終止和交聯(lián)。反應(yīng)速率受UV光強(qiáng)、光引發(fā)劑濃度、單體類(lèi)型等因素影響,UV固化技術(shù)具有快速固化特性。
    的頭像 發(fā)表于 12-06 09:33 ?1302次閱讀

    Verilog硬件描述語(yǔ)言參考手冊(cè)

    一. 關(guān)于 IEEE 1364 標(biāo)準(zhǔn)二. Verilog簡(jiǎn)介三. 語(yǔ)法總結(jié)四. 編寫(xiě)Verilog HDL源代碼的標(biāo)準(zhǔn)五. 設(shè)計(jì)流程
    發(fā)表于 11-04 10:12 ?4次下載

    Verilog語(yǔ)法中運(yùn)算符的用法

    verilog語(yǔ)法中使用以下兩個(gè)運(yùn)算符可以簡(jiǎn)化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?3138次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>中運(yùn)算符的用法