99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

Verilog如何編程?Verilog編程知識點(diǎn)總結(jié)

電子工程師 ? 來源:未知 ? 作者:姚遠(yuǎn)香 ? 2019-01-01 10:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA的設(shè)計(jì)就是將自己想要實(shí)現(xiàn)的邏輯通過計(jì)算機(jī)能夠理解的語言描述出來,并讓計(jì)算機(jī)根據(jù)FPGA內(nèi)部的資源生成可以進(jìn)行資源配置并在加電以后能夠執(zhí)行的過程。

人的邏輯和計(jì)算機(jī)之間的橋梁就是HDL - 硬件描述語言,目前有兩個(gè)比較流行的語言Verilog和VHDL,其中Verilog用的更多,在我們的小腳丫FPGA平臺上也選用了Verilog。

語言就是一個(gè)工具,不同的語言只是語法、規(guī)則不同而已,稍加了解這些語法、規(guī)則應(yīng)該就可以方便地切換到不同語言上。因此在FPGA設(shè)計(jì)時(shí),無論是Verilog、VHDL還是其它更高級的語言,這都不是FPGA的實(shí)質(zhì),我們在使用的時(shí)候也沒有必要糾結(jié)用的是何種語言。

很多做FPGA設(shè)計(jì)的工程師都買過某著名教授的Verilog的教程,非常厚,但普遍反應(yīng)看不懂,從頭到尾看了好幾遍,仍然不會(huì)做FPGA設(shè)計(jì)。

我翻看過基本英文版的FPGA設(shè)計(jì)的教程,沒有一本是專門講Verilog的語言的,多數(shù)是將Verilog的語法和規(guī)則作為附錄放在書的后面供查閱。

因?yàn)閂erilog實(shí)在太簡單,所有的語法和規(guī)則匯總起來也就兩個(gè)頁面,對于學(xué)習(xí)FPGA的初學(xué)者來講了解這些已經(jīng)足夠,更重要的是在實(shí)際的項(xiàng)目中通過具體的使用和調(diào)試來深刻掌握。

Verilog看起來跟C++比較像,但由于它是一門用于描述硬件的語言,因此它跟MCU上運(yùn)行的程序不同,它有一些跟硬件高度相關(guān)的特性需要格外注意。如果把FPGA的邏輯用MCU程序的思路去寫,那就大錯(cuò)特錯(cuò)了。

下面是我們www.stepfpga.com的Wiki系統(tǒng)里對Verilog的簡要介紹(詳細(xì)的語法和規(guī)則可以點(diǎn)擊左下角的“閱讀原文”指向的頁面):

Verilog 是 Verilog HDL 的簡稱,Verilog HDL 是一種硬件描述語言(HDL:Hardware Description Language),硬件描述語言是電子系統(tǒng)硬件行為描述、結(jié)構(gòu)描述、數(shù)據(jù)流描述的語言。利用這種語言,數(shù)字電路系統(tǒng)的設(shè)計(jì)可以從頂層到底層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,利用電子設(shè)計(jì)自動(dòng)化(EDA)工具,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過自動(dòng)綜合工具轉(zhuǎn)換到門級電路網(wǎng)表。接下去,再用專用集成電路 ASIC 或現(xiàn)場可編程門陣列 FPGA 自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu)。

在 FPGA 的設(shè)計(jì)中,我們有多種設(shè)計(jì)方式,如繪制原理圖、編寫描述語言代碼等。早期的工程師對原理圖的設(shè)計(jì)方式情有獨(dú)鐘,這種輸入方式能夠很直觀的看出電路的結(jié)構(gòu)并快速理解電路。隨著邏輯規(guī)模的不斷攀升,邏輯電路也越來越復(fù)雜,這種輸入方式就會(huì)顯得力不從心,應(yīng)付簡單的邏輯電路還算實(shí)用,應(yīng)付起復(fù)雜的邏輯電路就不行了。因此取而代之的便是編寫描述語言代碼的方式,現(xiàn)今的絕大多數(shù)設(shè)計(jì)都是采用代碼來完成的。

簡單地講在Verilog編程中需要注意以下幾點(diǎn):

所有的Verilog程序都以Module(模塊、組件)的方式存在,一個(gè)簡單的邏輯可以由一個(gè)Module組成,復(fù)雜的邏輯可以包含多個(gè)Modules,每個(gè)Module有獨(dú)立的功能,并由輸入、輸出端口被其它module調(diào)用。通過Module的方式可以將一些比較獨(dú)立、可以復(fù)用的功能進(jìn)行模塊化,代碼閱讀起來也比較直觀;

Verilog的信號分為wire和register兩種類型,wire可以看成直接的連接,而register具有對某一個(gè)時(shí)間點(diǎn)狀態(tài)進(jìn)行保持的功能,因此在設(shè)計(jì)邏輯的時(shí)候要明確定義每個(gè)信號是wire還是reg屬性;

并行執(zhí)行:Verilog描述的主要是硬件而不是軟件,因此也就意味著其描述的各個(gè)功能之間可以并行執(zhí)行,比如在你的設(shè)計(jì)中你有3個(gè)計(jì)數(shù)器,每一個(gè)計(jì)數(shù)器都連接到不同的時(shí)鐘上,這是沒有問題的,每一個(gè)時(shí)鐘都干自己的事。不像MCU,只有一個(gè)線程按照順序執(zhí)行。

由于篇幅所限,我們就不對這個(gè)語言的具體語法、規(guī)則進(jìn)行展開,在此借用Stanford大學(xué)的Paul Hartke教授的Verilog課程的PPT頁面來對Verilog的語法和規(guī)則做個(gè)簡單的介紹(正好可以借此提升一下自己的專業(yè)英語閱讀能力),可以看到斯坦福大學(xué)的學(xué)生學(xué)習(xí)Verilog也就十幾個(gè)頁面的內(nèi)容。

使用Verilog設(shè)計(jì)FPGA的流程

Module是Verilog最基本構(gòu)成方式

Verilog的語法規(guī)定跟C++比較接近

數(shù)值規(guī)范

按位/邏輯操作符

混合操作符

一元減數(shù)操作符(教授說它從來沒有在實(shí)際的應(yīng)用中看到過、用過)

連續(xù)賦值

過程賦值

if-else條件過程賦值

邏輯操作符

關(guān)系操作符

Case Statement過程賦值

如何得到一個(gè)D觸發(fā)器?

在有限狀態(tài)機(jī)(FSM)中使用Case Statement

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

    關(guān)注

    1645

    文章

    22040

    瀏覽量

    618159
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

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

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95221

原文標(biāo)題:Verilog編程的要點(diǎn)

文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    哪有FPGA的verilog編程基礎(chǔ)知識?

    沒接觸過FPGA開發(fā),那個(gè)verilog編程有什么入門基礎(chǔ)知識學(xué)習(xí)的?
    發(fā)表于 04-29 23:09

    【信盈達(dá)】C語言知識點(diǎn)總結(jié)

    :模塊化編程、編程規(guī)范、編程優(yōu)化。--------------------------------------------知識點(diǎn)10:結(jié)構(gòu)體知識點(diǎn)
    發(fā)表于 10-08 14:41

    Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)教程》(第四版)學(xué)習(xí)筆記 part1 Verilog數(shù)字設(shè)計(jì)基礎(chǔ)——第一章知識點(diǎn)總結(jié)

    教材,第四版是它的最新版本。在學(xué)習(xí)的過程中,博主對每一章的知識點(diǎn)進(jìn)行了梳理,對其中重要的知識點(diǎn)(博主認(rèn)為的)都做了歸納,當(dāng)然也有些知識點(diǎn)被博主舍棄掉了。學(xué)習(xí)的過程中也存在一些沒看太明白的地方,對于這些
    發(fā)表于 03-22 10:26

    高一數(shù)學(xué)知識點(diǎn)總結(jié)

    高一數(shù)學(xué)知識點(diǎn)總結(jié)高一數(shù)學(xué)知識點(diǎn)總結(jié)高一數(shù)學(xué)知識點(diǎn)總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    高二數(shù)學(xué)知識點(diǎn)總結(jié)

    高二數(shù)學(xué)知識點(diǎn)總結(jié)高二數(shù)學(xué)知識點(diǎn)總結(jié)高二數(shù)學(xué)知識點(diǎn)總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    Verilog編程語言界面入門知識簡介

    即使Verilog成功,許多經(jīng)驗(yàn)豐富的Verilog用戶仍然認(rèn)為其編程語言界面( PLI)作為“軟件任務(wù)”。一步一步的方法可以幫助您在編寫PLI函數(shù)時(shí)“打破僵局”。通過學(xué)習(xí)PLI設(shè)計(jì)的基本知識
    的頭像 發(fā)表于 08-13 17:31 ?6454次閱讀

    使用C語言進(jìn)行單片機(jī)編程的基本知識點(diǎn)編程規(guī)范資料總結(jié)

    這個(gè)8*8按鍵程序的過程中,不管是在自己寫還是參考別人程序的過程中,發(fā)現(xiàn)自己對C語言有些基本知識點(diǎn)編程規(guī)范
    的頭像 發(fā)表于 08-17 09:08 ?5299次閱讀

    嵌入式知識點(diǎn)總結(jié)

    嵌入式知識點(diǎn)總結(jié)(arm嵌入式開發(fā)led過程)-嵌入式知識點(diǎn)總結(jié)? ? ? ? ? ? ? ? ? ??
    發(fā)表于 07-30 14:20 ?23次下載
    嵌入式<b class='flag-5'>知識點(diǎn)</b><b class='flag-5'>總結(jié)</b>

    Verilog編程語言嗎

    知乎上刷到一個(gè)問題,問性能最強(qiáng)的編程語言是什么?看到高贊回答到是Verilog,然后在評論區(qū)就引發(fā)了一場Verilog到底算不算編程語言的爭論,我覺得比較有意思,所以就也打算嘮嘮這個(gè)事
    的頭像 發(fā)表于 08-23 14:30 ?6531次閱讀

    開關(guān)電源模塊知識點(diǎn)總結(jié)

    開關(guān)電源模塊知識點(diǎn)總結(jié)(現(xiàn)代電源技術(shù)基礎(chǔ)pdf)-該文檔為開關(guān)電源模塊知識點(diǎn)總結(jié)文檔,是一份不錯(cuò)的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,,,,,
    發(fā)表于 09-22 13:42 ?27次下載
    開關(guān)電源模塊<b class='flag-5'>知識點(diǎn)</b><b class='flag-5'>總結(jié)</b>

    Verilog設(shè)計(jì)過程中的一些經(jīng)驗(yàn)與知識點(diǎn)

     “ 本文主要分享了在Verilog設(shè)計(jì)過程中一些經(jīng)驗(yàn)與知識點(diǎn),主要包括塊語句、阻塞賦值和非阻塞賦值 以及結(jié)構(gòu)說明語句(initial, always, task, function)?!?/div>
    的頭像 發(fā)表于 03-15 12:19 ?2669次閱讀

    Verilog系統(tǒng)函數(shù)和邊沿檢測

    “ 本文主要分享了在Verilog設(shè)計(jì)過程中一些經(jīng)驗(yàn)與知識點(diǎn),主要包括Verilog仿真時(shí)常用的系統(tǒng)任務(wù)、雙向端口的使用(inout)、邊沿檢測”
    的頭像 發(fā)表于 03-15 13:34 ?2725次閱讀

    數(shù)字信號處理知識點(diǎn)總結(jié)

    數(shù)字信號處理知識點(diǎn)總結(jié)
    發(fā)表于 08-15 15:16 ?0次下載

    verilog與其他編程語言的接口機(jī)制

    Verilog是一種硬件描述語言,用于描述數(shù)字電路的行為和結(jié)構(gòu)。與其他編程語言相比,Verilog具有與硬件緊密結(jié)合的特點(diǎn),因此其接口機(jī)制也有一些與眾不同之處。本文將詳細(xì)介紹Verilog
    的頭像 發(fā)表于 02-23 10:22 ?1106次閱讀

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

    Verilog 與 VHDL 比較 1. 語法和風(fēng)格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程師來說,學(xué)習(xí)曲線較平緩。它支持結(jié)構(gòu)化編程,代
    的頭像 發(fā)表于 12-17 09:44 ?1693次閱讀