chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

從零開(kāi)始學(xué)FPGA-Verilog語(yǔ)法基礎(chǔ)(下)

電子工程師 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPG設(shè)計(jì)論壇 ? 2021-03-14 10:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

零基礎(chǔ)學(xué)FPGA-Verilog語(yǔ)法下

9、關(guān)于任務(wù)和函數(shù)的小結(jié),挑幾點(diǎn)重要的說(shuō)一下吧

(1)任務(wù)具有多個(gè)輸入、輸入/輸出和輸出變量,在任務(wù)重可以使用延遲、事件和時(shí)序控制結(jié)構(gòu),在任務(wù)重可以調(diào)用其它任務(wù)和函數(shù)。與任務(wù)不同,函數(shù)具有返回值,而且至少要有一個(gè)輸入變量,而且在函數(shù)中不能使用延遲、事件和時(shí)序控制結(jié)構(gòu),函數(shù)可以條用函數(shù),但是不能調(diào)用任務(wù)。

(2)在聲明函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)的生成一個(gè)寄存器變量,函數(shù)的返回值通過(guò)這個(gè)寄存器返回到調(diào)用處。

(3)函數(shù)和任務(wù)都包含在設(shè)計(jì)層次中,可以通過(guò)層次名對(duì)他們實(shí)行調(diào)用。這句話什么意思??? 10、系統(tǒng)任務(wù) (1)$diplay和$write任務(wù) $display任務(wù)相當(dāng)于C語(yǔ)言里的printf,用于輸出信息,他的基本格式$display (p0,p1,p2);意思就是把p1、p2以p1的格式輸出,至于具體格式,C語(yǔ)言里面講的很清楚,下面用一張圖幫大家回憶一下

a01bac10-8434-11eb-8b86-12bb97331649.jpg

a05666c0-8434-11eb-8b86-12bb97331649.jpg

此外,在display中,輸出列表中的數(shù)據(jù)的現(xiàn)實(shí)寬度總是按照自動(dòng)輸出格式進(jìn)行調(diào)整的。因此,我們通常在%和表示進(jìn)制的符號(hào)之間加一個(gè)0來(lái)確??偸怯米钌俚奈粩?shù)來(lái)表示表達(dá)式的當(dāng)前值。 例如 begin r1=10; $display(“size=%d=%h”,r1,r1); $display(“size=%0d=%0h”,r1,r1); 輸出結(jié)果分別為 10,00a和10,a 所以在以后寫(xiě)程序時(shí),為了養(yǎng)成良好習(xí)慣,應(yīng)該注意加上0來(lái)保證代碼的可讀性。

如果輸出的列表中含有不定值或者高阻態(tài)時(shí),要遵循下列情況

(1)如果按10進(jìn)制輸出 如果輸出列表全部為不定值,則輸出為小寫(xiě)x;

如果輸出列表部分為不定值,則輸出為大寫(xiě)X;

如果輸出列表全部為高阻態(tài),則輸出為小寫(xiě)的z;

如果輸出列表部分為高阻態(tài),則輸出為大寫(xiě)的Z;

(2)如果按十六進(jìn)制或者8進(jìn)制輸出

那么十六進(jìn)制對(duì)應(yīng)的四位或者8進(jìn)制對(duì)應(yīng)的3位中,如果部分是高阻態(tài)或者是不定值,那么輸出結(jié)果為大寫(xiě)的Z或者X否則就輸出小寫(xiě)的z或者x; 例如

a064f898-8434-11eb-8b86-12bb97331649.jpg

(2)$monitor

系統(tǒng)任務(wù)$monitor提供了監(jiān)控和輸出參數(shù)列表中的表達(dá)式或變量值的功能,其參數(shù)列表中輸出控制格式字符串和輸出列表的規(guī)則和$display一樣,當(dāng)啟動(dòng)一個(gè)帶有一個(gè)或者多個(gè)的$monitor任務(wù)時(shí),仿真器則創(chuàng)立一個(gè)仿真機(jī)制,使得每當(dāng)參數(shù)列表中的表達(dá)式或值發(fā)生變化時(shí),整個(gè)參數(shù)列表中的變量或者表達(dá)式的值都將輸出顯示,如果在同一時(shí)刻,兩個(gè)或者多個(gè)參數(shù)的值發(fā)生變化,則在這時(shí)刻只輸出顯示一次,但在$monitor任務(wù)中,參數(shù)可以是$time系統(tǒng)函數(shù),這樣參數(shù)列表中變量或者表達(dá)式的值同時(shí)發(fā)生變化的時(shí)刻可以通過(guò)標(biāo)明同一時(shí)刻的多行輸出來(lái)顯示。例如

a0b651ca-8434-11eb-8b86-12bb97331649.jpg

$monitoron和$monitoroff的功能就是通過(guò)打開(kāi)或者關(guān)閉監(jiān)控標(biāo)志來(lái)控制監(jiān)控任務(wù)$monitor的啟動(dòng)和停止。這樣可以使得程序員很容易的控制$monitor什么時(shí)候執(zhí)行了。

(3)時(shí)間度量系統(tǒng)函數(shù)$time 在verilog hdl語(yǔ)法中有兩種時(shí)間度量系統(tǒng)函數(shù),分別是$time和$realtime,用這兩個(gè)系統(tǒng)函數(shù)可以得到當(dāng)前的仿真時(shí)刻。$time可以返回一個(gè)64位的值來(lái)記錄當(dāng)前的仿真時(shí)刻。 (4)$finish 系統(tǒng)任務(wù)$finish的作用是退出仿真器,返回主操作系統(tǒng),也就是結(jié)束仿真過(guò)程。格式是 $finish或者$finish(1);如果不帶參數(shù),則默認(rèn)參數(shù)為1,下面是具體參數(shù)下系統(tǒng)輸出的特征信息。

0 不輸出任何信息

1 輸出當(dāng)前仿真時(shí)刻和位置

2 輸出當(dāng)前仿真時(shí)刻、位置和在仿真過(guò)程中所用memory及CPU時(shí)間的統(tǒng)計(jì)。

(4)系統(tǒng)任務(wù)$stop $stop任務(wù)作用是把EDA工具置成暫停模式,在仿真環(huán)境下給出一個(gè)交互式的命令操作符,將控制權(quán)交給用戶。這個(gè)任務(wù)可以帶有參數(shù)表達(dá)式,根據(jù)參數(shù)值(0、1、2)的不同,輸出不同的信息,參數(shù)值越大,輸出信息越多。

(5)系統(tǒng)任務(wù)$random

這個(gè)系統(tǒng)函數(shù)提供了一個(gè)產(chǎn)生隨機(jī)數(shù)的手段,當(dāng)函數(shù)被占用時(shí)返回一個(gè)32位的隨機(jī)數(shù),它是一個(gè)帶符號(hào)的整形數(shù)。

下面是一個(gè)產(chǎn)生隨機(jī)數(shù)的例子

reg[23:0] rand;

rand=$random %60;

上面的例子產(chǎn)生一個(gè)-59到59之間的隨機(jī)數(shù),所以$random的用法是產(chǎn)生一個(gè)(-b+1)到(b-1)之間的隨機(jī)數(shù)。

下面的例子通過(guò)并位產(chǎn)生一個(gè)值在0—59之間的隨機(jī)數(shù)

reg[23:0 rand];

rand = {$random} %60; 利用這個(gè)系統(tǒng)函數(shù)可以產(chǎn)生隨機(jī)脈沖序列或?qū)挾入S機(jī)的脈沖序列,用于電路的測(cè)試。

下面是個(gè)產(chǎn)生隨機(jī)脈沖序列的例子

a3efb43a-8434-11eb-8b86-12bb97331649.jpg

a42a94d8-8434-11eb-8b86-12bb97331649.jpg

(6)關(guān)于編譯預(yù)處理 編譯預(yù)處理這部分和C語(yǔ)言差不多,主要用到的是`define、`include、和時(shí)間尺度`timescale `define 就是宏定義,在C語(yǔ)言了用的也比較多,在verilog中靈活的使用宏定義可以增加程序的可讀性,又方便修改。例如在聲明一個(gè)8位寄存器時(shí)用宏定義 `define WINDOWS 8 module reg [1:`WINDOWS] date; …… 習(xí)慣上一般宏定義的內(nèi)容用大寫(xiě)字母表示,這里的WINDOWS就代表數(shù)字8,在下面的程序中調(diào)用WINDOWS時(shí)加個(gè) `,表示調(diào)用,這樣宏定義的好處就是,在大的程序中如果想改變寄存器的大小,可以直接改數(shù)字8為16,這樣,所有的WINDOWS都變成了16,這樣改一個(gè)就可以改變所有的,給程序員帶來(lái)了方便。 對(duì)于`include,C語(yǔ)言里用的比較多這里就不在多提,主要是模塊化編程思想的應(yīng)用,這個(gè)很重要,練好模塊化編程,可以大大提高程序的可讀性和可移植性,也使修改程序變得更加方便。 對(duì)于`timescale,就是一個(gè)時(shí)間尺度,C語(yǔ)言里面沒(méi)有,這里說(shuō)一下。 `timescale 包括兩部分,一部分是時(shí)間單位,一部分是時(shí)間精度,下面舉個(gè)例子

a45d56b6-8434-11eb-8b86-12bb97331649.jpg

在這個(gè)例子中,時(shí)間單位是10ns,時(shí)間精度是1ns,這里d=1.55,也就是說(shuō)d等于1.55乘10納秒,也就是15.5納秒,再看時(shí)間精度是一納秒,四舍五入就是16納秒,所以在16納秒時(shí),set置零,32納秒時(shí)set置一。

小結(jié) (1)、在多模塊調(diào)試的情況下,$monitor需配合$monitoron和$monitoroff來(lái)使用。

(2)、$monitor和$diplay的區(qū)別在于$monitor是連續(xù)監(jiān)視數(shù)據(jù)的變化,因而往往只要在測(cè)試模塊的initial塊中調(diào)用一次就可以監(jiān)控被測(cè)模塊中所有感興趣的信號(hào)不需要,也不能在always塊中調(diào)用$monitor.

(3)、$time常在$monitor中作時(shí)間標(biāo)記

(4)、$stop 和 $finish 常用在測(cè)試模塊的initial塊中,配合時(shí)間延遲用來(lái)控制仿真的持續(xù)時(shí)間。

(5)、$random在編寫(xiě)程序是非常有用的,可以用來(lái)產(chǎn)生邊沿不穩(wěn)定的波形和隨機(jī)出現(xiàn)的脈沖。正確的使用它能有效的發(fā)現(xiàn)設(shè)計(jì)中出現(xiàn)的問(wèn)題。

(6)、$readman在編寫(xiě)測(cè)試程序時(shí)很有用,可以用來(lái)生成給定的復(fù)雜數(shù)據(jù)流。復(fù)雜數(shù)據(jù)可以用C語(yǔ)言產(chǎn)生,存在文件中。用$readman取出存入存儲(chǔ)器,再按節(jié)拍輸出這在驗(yàn)證算法邏輯電路中特別有用。

(7)、在用`timescale時(shí)要注意當(dāng)多個(gè)帶不同`timescale定義的模塊包含在一起時(shí),只有最后一個(gè)才起作用,所以屬于一個(gè)項(xiàng)目,但`timescale定義不同的多個(gè)模塊最好分開(kāi)編譯,以免把時(shí)間單位搞混。

(8)、宏定義字符串和include引用時(shí),不要忘記用“`”這個(gè)標(biāo)號(hào)。

責(zé)任編輯:lq6

聲明:本文內(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)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1650

    文章

    22211

    瀏覽量

    627617
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5498

    瀏覽量

    128097
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1045

    瀏覽量

    86465

原文標(biāo)題:零基礎(chǔ)學(xué)FPGA-Verilog語(yǔ)法下

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    從零開(kāi)始學(xué)電子元器件識(shí)別與檢測(cè)技術(shù)

    獲取完整文檔資料可下載附件哦?。。。?如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一哦~
    發(fā)表于 07-18 17:39

    電商API集成入門(mén):從零開(kāi)始搭建高效接口

    ? 在當(dāng)今數(shù)字化電商時(shí)代,API(應(yīng)用程序接口)集成已成為企業(yè)提升效率、實(shí)現(xiàn)系統(tǒng)互聯(lián)的關(guān)鍵技術(shù)。無(wú)論是同步商品信息、處理訂單,還是整合支付系統(tǒng),一個(gè)高效的API接口能顯著優(yōu)化業(yè)務(wù)流程。本文將從零開(kāi)始
    的頭像 發(fā)表于 07-10 14:23 ?344次閱讀
    電商API集成入門(mén):<b class='flag-5'>從零開(kāi)始</b>搭建高效接口

    從零開(kāi)始學(xué)IP地址

    IP地址是一種網(wǎng)絡(luò)編碼,用來(lái)唯一標(biāo)識(shí)網(wǎng)絡(luò)中的設(shè)備,以確保主機(jī)間正常通信。IP地址由32位二進(jìn)制(32-bit)組成。
    的頭像 發(fā)表于 07-08 09:29 ?1144次閱讀
    <b class='flag-5'>從零開(kāi)始</b><b class='flag-5'>學(xué)</b>IP地址

    為什么我選擇VHDL入門(mén)

    篇。 從長(zhǎng)期來(lái)看,兩個(gè)語(yǔ)言大概率都要學(xué);但是從初學(xué)角度而言,總要選擇一個(gè)入門(mén)語(yǔ)言。 根據(jù)網(wǎng)上的信息,總結(jié)對(duì)比結(jié)論: Verilog 的優(yōu)勢(shì): 1. Verilog
    的頭像 發(fā)表于 06-25 11:18 ?714次閱讀
    為什么我選擇VHDL入門(mén)

    以太網(wǎng)入門(mén):從零開(kāi)始,掌握以太網(wǎng)基礎(chǔ)知識(shí)!

    以太網(wǎng)作為現(xiàn)代通信技術(shù)的基石,其重要性不言而喻。無(wú)論是日常網(wǎng)絡(luò)應(yīng)用,還是AI對(duì)高速大帶寬網(wǎng)絡(luò)的需求,以太網(wǎng)都扮演著不可或缺的角色。本文將從零開(kāi)始,帶您了解以太網(wǎng)的基礎(chǔ)知識(shí),幫助您快速入門(mén)。什么是以
    的頭像 發(fā)表于 06-09 14:00 ?4055次閱讀
    以太網(wǎng)入門(mén):<b class='flag-5'>從零開(kāi)始</b>,掌握以太網(wǎng)基礎(chǔ)知識(shí)!

    從零開(kāi)始之電機(jī)FOC控制

    我們將撕開(kāi)FOC神秘而虛偽的面紗,以說(shuō)人話的方式講述它。真正的做到從零開(kāi)始,小白一看就會(huì),一學(xué)就廢。如果覺(jué)得有用的話,就點(diǎn)個(gè)贊唄,純手碼。一、什么是FOC?FOC
    的頭像 發(fā)表于 04-23 19:34 ?3668次閱讀
    <b class='flag-5'>從零開(kāi)始</b>之電機(jī)FOC控制

    從零開(kāi)始學(xué)電源

    從零開(kāi)始學(xué)電源···內(nèi)部篇 從零開(kāi)始學(xué)電源---------內(nèi)部篇 (寫(xiě)這篇文的著眼點(diǎn)就在“從零開(kāi)始”上,所以涉及到一些詞匯和技術(shù)的時(shí)候,我
    發(fā)表于 04-07 15:30

    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 ?916次閱讀
    <b class='flag-5'>FPGA</b> <b class='flag-5'>Verilog</b> HDL<b class='flag-5'>語(yǔ)法</b>之編譯預(yù)處理

    從零開(kāi)始學(xué)電路仿真Multisim與電路設(shè)計(jì)Protel技術(shù)——完整版

    資料介紹為讀者從零開(kāi)始,快速掌握EDA(電子設(shè)計(jì)自動(dòng)化)領(lǐng)域中最常用、最流行的兩個(gè)功能強(qiáng)大的應(yīng)用軟件Multisim、Protel而編寫(xiě)的。 本書(shū)首先介紹了EDA技術(shù)的發(fā)展與應(yīng)用,并對(duì)常用EDA軟件
    發(fā)表于 03-25 14:37

    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 ?1429次閱讀

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

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

    從零開(kāi)始訓(xùn)練一個(gè)大語(yǔ)言模型需要投資多少錢(qián)?

    一,前言 ? 在AI領(lǐng)域,訓(xùn)練一個(gè)大型語(yǔ)言模型(LLM)是一個(gè)耗時(shí)且復(fù)雜的過(guò)程。幾乎每個(gè)做大型語(yǔ)言模型(LLM)訓(xùn)練的人都會(huì)被問(wèn)到:“從零開(kāi)始,訓(xùn)練大語(yǔ)言模型需要多久和花多少錢(qián)?”雖然網(wǎng)上有很多
    的頭像 發(fā)表于 11-08 14:15 ?1170次閱讀
    <b class='flag-5'>從零開(kāi)始</b>訓(xùn)練一個(gè)大語(yǔ)言模型需要投資多少錢(qián)?

    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 ?3120次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>中運(yùn)算符的用法

    Verilog HDL的基礎(chǔ)知識(shí)

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識(shí),重點(diǎn)介紹賦值語(yǔ)句、阻塞與非阻塞、循環(huán)語(yǔ)句、同步與異步、函數(shù)與任務(wù)語(yǔ)法知識(shí)。
    的頭像 發(fā)表于 10-24 15:00 ?1496次閱讀
    <b class='flag-5'>Verilog</b> HDL的基礎(chǔ)知識(shí)