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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

(3)函數(shù)和任務都包含在設計層次中,可以通過層次名對他們實行調(diào)用。這句話什么意思?。?10、系統(tǒng)任務 (1)$diplay和$write任務 $display任務相當于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)成良好習慣,應該注意加上0來保證代碼的可讀性。

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

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

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

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

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

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

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

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

(2)$monitor

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

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

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

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

0 不輸出任何信息

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

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

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

(5)系統(tǒng)任務$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)于編譯預處理 編譯預處理這部分和C語言差不多,主要用到的是`define、`include、和時間尺度`timescale `define 就是宏定義,在C語言了用的也比較多,在verilog中靈活的使用宏定義可以增加程序的可讀性,又方便修改。例如在聲明一個8位寄存器時用宏定義 `define WINDOWS 8 module reg [1:`WINDOWS] date; …… 習慣上一般宏定義的內(nèi)容用大寫字母表示,這里的WINDOWS就代表數(shù)字8,在下面的程序中調(diào)用WINDOWS時加個 `,表示調(diào)用,這樣宏定義的好處就是,在大的程序中如果想改變寄存器的大小,可以直接改數(shù)字8為16,這樣,所有的WINDOWS都變成了16,這樣改一個就可以改變所有的,給程序員帶來了方便。 對于`include,C語言里用的比較多這里就不在多提,主要是模塊化編程思想的應用,這個很重要,練好模塊化編程,可以大大提高程序的可讀性和可移植性,也使修改程序變得更加方便。 對于`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)設計中出現(xiàn)的問題。

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

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

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

責任編輯:lq6

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

    關(guān)注

    1664

    文章

    22509

    瀏覽量

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

    關(guān)注

    31

    文章

    5620

    瀏覽量

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

    關(guān)注

    14

    文章

    1053

    瀏覽量

    88216

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    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>學習筆記

    FPGA 入門必看:Verilog 與 VHDL 編程基礎(chǔ)解析!

    很多開發(fā)者第一次接觸FPGA,都會有同樣的疑問:FPGA是硬件,不是軟件,怎么寫程序?答案就是用硬件描述語言(HDL),最常用的就是Verilog和VHDL。今天,我們就帶你入門,搞清楚FPG
    的頭像 發(fā)表于 01-19 09:05 ?749次閱讀
    <b class='flag-5'>FPGA</b> 入門必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    從零開始模組功耗:新手必備基礎(chǔ)解析

    模組在物聯(lián)網(wǎng)、通信和嵌入式系統(tǒng)中廣泛應用,而其功耗表現(xiàn)是決定項目成敗的關(guān)鍵因素之一。許多新手因忽視功耗參數(shù)而導致設備異常關(guān)機或續(xù)航不足。本文將用通俗易懂的方式,帶你全面認識模組的功耗機制與評估方法。 一,模組的低功耗特性概述 低功耗是 4G Cat.1 模組最重要的特性之一 4G Cat.1 模組有三種功耗模式,分別有各自的特點; ?4G Cat.1 模組優(yōu)異的低功耗表現(xiàn),既有硬件設計的加持,也有軟件協(xié)議算法的幫助; 不同的應用場景,按需選擇
    的頭像 發(fā)表于 01-17 19:24 ?467次閱讀
    <b class='flag-5'>從零開始</b><b class='flag-5'>學</b>模組功耗:新手必備基礎(chǔ)解析

    如何使用FPGA實現(xiàn)SRIO通信協(xié)議

    泛應用。文章重點解釋了回環(huán)測試的基本概念,這種方法可驗證FPGA中的SRIO接口功能的正確性,并提供了系統(tǒng)級測試驗證的相關(guān)知識。同時,本例程還涵蓋了Verilog語法、FPGA架構(gòu)、S
    的頭像 發(fā)表于 11-12 14:38 ?6120次閱讀
    如何使用<b class='flag-5'>FPGA</b>實現(xiàn)SRIO通信協(xié)議

    直播預約 |開源芯片系列講座第30期:“一生一芯”計劃——從零開始設計自己的RISC-V處理器芯片

    鷺島論壇開源芯片系列講座第30期「“一生一芯”計劃從零開始設計自己的RISC-V處理器芯片」11月17日(周三)20:00精彩開播期待與您云相聚,共襄學術(shù)盛宴!|直播信息報告題目“一生一芯”計劃
    的頭像 發(fā)表于 11-10 12:03 ?1192次閱讀
    直播預約 |開源芯片系列講座第30期:“一生一芯”計劃——<b class='flag-5'>從零開始</b>設計自己的RISC-V處理器芯片

    從零開始了解智慧教室(一):智慧教室核心設備

    在教育數(shù)字化轉(zhuǎn)型的浪潮中,智慧教室已成為現(xiàn)代教育的標配。但對于初次接觸智慧教室的學校來說,"智慧教室"到底包含哪些設備?今天將從零開始,全面介紹智慧教室的常見智能設備。
    的頭像 發(fā)表于 11-03 17:58 ?1715次閱讀
    <b class='flag-5'>從零開始</b>了解智慧教室(一):智慧教室核心設備

    語法糾錯和testbench的自動生成

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

    從零開始利用NMSIS庫搭建神經(jīng)網(wǎng)絡(一)

    環(huán)境:Vivado2021.1、NucleiStudio_IDE_202102-win64 內(nèi)容:從零開始利用NMSIS庫搭建神經(jīng)網(wǎng)絡,這一節(jié)主講基本的NMSIS庫卷積函數(shù)的解讀。 一、自測檢查
    發(fā)表于 10-24 13:47

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

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

    如何利用Verilog HDL在FPGA上實現(xiàn)SRAM的讀寫測試

    本篇將詳細介紹如何利用Verilog HDL在FPGA上實現(xiàn)SRAM的讀寫測試。SRAM是一種非易失性存儲器,具有高速讀取和寫入的特點。在FPGA中實現(xiàn)SRAM讀寫測試,包括設計SRAM接口模塊
    的頭像 發(fā)表于 10-22 17:21 ?4595次閱讀
    如何利用<b class='flag-5'>Verilog</b> HDL在<b class='flag-5'>FPGA</b>上實現(xiàn)SRAM的讀寫測試

    從零開始電子元器件識別與檢測技術(shù)

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

    電商API集成入門:從零開始搭建高效接口

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

    從零開始IP地址

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

    為什么我選擇VHDL入門

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

    以太網(wǎng)入門:從零開始,掌握以太網(wǎng)基礎(chǔ)知識!

    以太網(wǎng)作為現(xiàn)代通信技術(shù)的基石,其重要性不言而喻。無論是日常網(wǎng)絡應用,還是AI對高速大帶寬網(wǎng)絡的需求,以太網(wǎng)都扮演著不可或缺的角色。本文將從零開始,帶您了解以太網(wǎng)的基礎(chǔ)知識,幫助您快速入門。什么是以
    的頭像 發(fā)表于 06-09 14:00 ?4117次閱讀
    以太網(wǎng)入門:<b class='flag-5'>從零開始</b>,掌握以太網(wǎng)基礎(chǔ)知識!
    洪湖市| 肥东县| 吴桥县| 锡林郭勒盟| 肥城市| 芷江| 淮安市| 沽源县| 绥宁县| 察隅县| 舒兰市| 宣武区| 台北市| 类乌齐县| 邛崃市| 宝山区| 朝阳区| 绿春县| 磐安县| 武义县| 汪清县| 东莞市| 榆中县| 右玉县| 上思县| 陵川县| 休宁县| 富民县| 泾阳县| 沁源县| 祁阳县| 西藏| 双江| 江达县| 西充县| 龙口市| 明星| 康保县| 长沙市| 西和县| 冷水江市|