在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

電子工程師 ? 來源:FPGA設(shè)計論壇 ? 作者:FPG設(shè)計論壇 ? 2021-03-14 10:30 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(2)$monitor

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

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

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

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

0 不輸出任何信息

1 輸出當前仿真時刻和位置

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

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

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

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

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

reg[23:0] rand;

rand=$random %60;

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

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

reg[23:0 rand];

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

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

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

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

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

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

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

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

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

(3)、$time常在$monitor中作時間標記

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

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

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

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

(8)、宏定義字符串和include引用時,不要忘記用“`”這個標號。

責(zé)任編輯:lq6

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

    關(guān)注

    1630

    文章

    21769

    瀏覽量

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

    關(guān)注

    31

    文章

    5359

    瀏覽量

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

    關(guān)注

    14

    文章

    1019

    瀏覽量

    83843

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    Verilog 測試平臺設(shè)計方法 Verilog FPGA開發(fā)指南

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

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

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

    從零開始訓(xùn)練一個大語言模型需要投資多少錢?

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

    Verilog硬件描述語言參考手冊

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

    Verilog語法中運算符的用法

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

    Verilog HDL的基礎(chǔ)知識

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

    FPGA Verilog HDL代碼如何debug?

    ,共同進步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題(一) Q:Verilog代碼如何debug?最近學(xué)習(xí)fpga,寫了不少verilog
    發(fā)表于 09-24 19:16

    FPGA Verilog HDL有什么奇技巧?

    不同的代碼段,方便進行代碼的調(diào)試和不同配置的實現(xiàn)。 利用 always_ff 、 always_latch 等新的語法特性:在特定的場景更清晰地表達電路的行為。 利用系統(tǒng)任務(wù)和函數(shù):如 **display
    發(fā)表于 09-12 19:10

    【招聘】verilog vhdl FPGA

    1.熟悉FPGA架構(gòu)及應(yīng)用,熟悉圖像算法的FPGA實現(xiàn)。 2.熟悉verilog vhdl,熟悉Xilinx或Intel等開發(fā)工具。 3.有AI算法 fpga實現(xiàn)經(jīng)驗優(yōu)先。 4.本科及
    發(fā)表于 09-02 15:50

    使用AD8001放大一個100mv左右的信號,經(jīng)過放大的信號低電平都是三點幾伏,不能夠從零開始,為什么?

    請問,如圖我想使用AD8001放大一個100mv左右的信號,然后使用比較器輸出信號進行計數(shù),但是現(xiàn)在經(jīng)過放大的信號低電平都是三點幾伏,不能夠從零開始,請問這是什么原因呢?如圖,紅色是需要放大的信號,紫色是經(jīng)過放大的信號。
    發(fā)表于 08-20 06:17

    分享一本書 《從零開始設(shè)計 FPGA 最小系統(tǒng)》

    *附件:從零開始設(shè)計FPGA最小系統(tǒng).pdf 以下為內(nèi)容片段摘要:詳細內(nèi)容在PDF里 FPGA 最小系統(tǒng)的概念 FPGA 最小系統(tǒng)是可以使 FPGA
    發(fā)表于 07-26 07:24

    FPGA學(xué)習(xí)筆記---基本語法

    Verilog語法是指硬件能夠?qū)崿F(xiàn)的語法。它的子集很小。常用的RTL語法結(jié)構(gòu)如下: 1、模塊聲明:module ... end module 2、端口聲明:input, output,
    發(fā)表于 06-23 14:58

    海靈犀FPGA基礎(chǔ)研學(xué)實驗箱

    配件組成,提供Verilog語言的實驗例程,產(chǎn)品具有實用性高、案例豐富、國產(chǎn)化程度高等特點,滿足教學(xué)機構(gòu)微電子、電子工程等相關(guān)專業(yè)基礎(chǔ)研學(xué)實驗需要。圖海靈犀FPGA
    的頭像 發(fā)表于 06-13 08:11 ?957次閱讀
    海靈犀<b class='flag-5'>FPGA</b>基礎(chǔ)研<b class='flag-5'>學(xué)</b>實驗箱

    fpga是用c語言還是verilog

    FPGA(現(xiàn)場可編程邏輯門陣列)開發(fā)主要使用的編程語言是硬件描述語言(HDL),其中Verilog是最常用的編程語言之一。而C語言通常用于傳統(tǒng)的軟件編程,與FPGA的硬件編程有所區(qū)別。
    的頭像 發(fā)表于 03-27 14:38 ?2089次閱讀

    fpga是什么專業(yè)學(xué)

    FPGA(現(xiàn)場可編程門陣列)的學(xué)習(xí)涉及多個專業(yè)領(lǐng)域,但主要與電子信息類、自動化類、計算機類等相關(guān)專業(yè)最為緊密。這些專業(yè)通常涵蓋數(shù)字電路設(shè)計、硬件描述語言(如Verilog和VHDL)編程、嵌入式系統(tǒng)設(shè)計等核心課程,為學(xué)習(xí)FPGA
    的頭像 發(fā)表于 03-14 16:41 ?2538次閱讀
    主站蜘蛛池模板: 欲色网站| 色综合久久综合欧美综合网| 啪啪网免费视频| 国产伦精品一区二区三区| 春宵福利网站| 欧美xxxxxxxxx| 亚洲免费资源| 中文字幕婷婷| 久久成人免费网站| 久久婷婷是五月综合色狠狠| 精品新一区二区三区四区| 国产婷婷色一区二区三区深爱网| 超色视频| 天天干天天插天天操| 久久天天躁狠狠躁夜夜不卡| 1024手机在线看| 色偷偷亚洲天堂| 亚洲宅男天堂a在线| 四虎精品免费国产成人| 免费看的一级毛片| 中文天堂网| 久久青草国产手机看片福利盒子| 69自拍视频| 国语一区| 日本黄色大片免费看| 国产三级中文字幕| 天堂资源最新版在线www| 国产69精品久久久久9牛牛| 亚洲 [12p]| 四虎伊人| 国产伦理一区二区三区| 天天爱夜夜| 国内精品久久久久影院男同志| 国模欢欢大尺度| 日本成人资源| 4hu44四虎在线观看| 国产片一级| 高清一区二区| 人人澡人| 亚洲第一在线视频| 欧美黄色高清|