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

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

3天內不再提示

標簽 > Verilog HDL

Verilog HDL

+關注 0人關注

Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),以文本形式來描述數(shù)字系統(tǒng)硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。

文章: 43
視頻: 60
瀏覽: 50412
帖子: 50

Verilog HDL簡介

  Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),以文本形式來描述數(shù)字系統(tǒng)硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。 Verilog HDL和VHDL是世界上最流行的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標準。

Verilog HDL百科

  Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),以文本形式來描述數(shù)字系統(tǒng)硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。 Verilog HDL和VHDL是世界上最流行的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標準。

  以模塊為基礎的設計

  描述復雜的硬件電路,設計人員總是將復雜的功能劃分為簡單的功能,模塊是提供每個簡單功能的基本結構。設計人員可以采取“自頂向下”的思路,將復雜的功能模塊劃分為低層次的模塊。這一步通常是由系統(tǒng)級的總設計師完成,而低層次的模塊則由下一級的設計人員完成。自頂向下的設計方式有利于系統(tǒng)級別層次劃分和管理,并提高了效率、降低了成本。“自底向上”方式是“自頂向下”方式的逆過程。

  使用Verilog描述硬件的基本設計單元是模塊(module)。構建復雜的電子電路,主要是通過模塊的相互連接調用來實現(xiàn)的。模塊被包含在關鍵字module、endmodule之內。實際的電路元件。Verilog中的模塊類似C語言中的函數(shù),它能夠提供輸入、輸出端口,可以實例調用其他模塊,也可以被其他模塊實例調用。模塊中可以包括組合邏輯部分、過程時序部分。例如,四選一的多路選擇器,就可以用模塊進行描述。它具有兩個位選輸入信號、四個數(shù)據(jù)輸入,一個輸出端,在Verilog中可以表示為:

  module mux (out, select, in0, in1, in2, in3);output out;input [1:0] select;input in0, in1, in2, in3;//具體的寄存器傳輸級代碼endmodule

  設計人員可以使用一個頂層模塊,通過實例調用上面這個模塊的方式來進行測試。這個頂層模塊常被稱為“測試平臺(Testbench)”。為了最大程度地對電路的邏輯進行功能驗證,測試代碼需要盡可能多地覆蓋系統(tǒng)所涉及的語句、分支、條件、路徑、觸發(fā)、狀態(tài)機狀態(tài),驗證人員需要在測試平臺里創(chuàng)建足夠多的輸入激勵,并連接到被測模塊的輸入端,然后檢測其輸出端的表現(xiàn)是否符合預期(諸如SystemVerilog的硬件驗證語言能夠提供針對驗證專門優(yōu)化的數(shù)據(jù)結構,以隨機測試的方式進行驗證,這對于高度復雜的集成電路設計驗證可以起到關鍵作用)。實例調用模塊時,需要將端口的連接情況按照這個模塊聲明時的順序排列。這個頂層模塊由于不需要再被外界調用,因此沒有輸入輸出端口:

  module tester;reg [1:0] SELECT;reg IN0, IN1, IN2, IN3;wire OUT;mux my_mux (OUT, SELECT, IN0, IN1, IN2, IN3); //實例調用mux模塊,這個實例被命名為my_muxinitial //需要仿真的激勵代碼 begin endendmodule

  在這個測試平臺模塊里,設計人員可以設定仿真時的輸入信號以及信號監(jiān)視程序,然后觀察仿真時的輸出情況是否符合要求,這樣就可以了解設計是否達到了預期。

  示例中的對模塊進行實例引用時,按照原模塊聲明時的順序羅列了輸入變量。除此之外,還可以使用或者采用命名端口連接的方式。使用這種方式,端口的排列順序可以與原模塊聲明時不同,甚至可以不連接某些端口:

  mux my_mux (.out(OUT), .select(SELECT), .in0(IN0), .in1(IN1), .in2(IN2), .in3(IN3));//使用命名端口連接,括號外面是模塊聲明時的端口,括號內是實際的端口連接//括號外相當于C語言的形式參數(shù),括號內相當于實際參數(shù)endmodule

  上面所述的情況是,測試平臺頂層模塊的測試變量直接連接了所設計的功能模塊。測試平臺還可以是另一種形式,即測試平臺并不直接連接所設計的功能模塊,而是在這個測試平臺之下,將激勵模塊和功能模塊以相同的抽象級別,通過線網(wǎng)相互連接。這兩種形式的測試平臺都可以完成對功能模塊的測試。大型的電路系統(tǒng),正是由各個層次不同模塊之間的連接、調用,來實現(xiàn)復雜的功能的。

  Verilog HDL 快速入門

  Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),它是以文本形式來描述數(shù)字系統(tǒng)硬件的結構和行為的語言。 世界上最流行的兩種硬件描述語言是Verilog HDL和VHDL。

  注意,VerilogHDL是一種描述語言,它和常見的編程語言C有根本的不同。C語言,讓計算機的CPU從上往下按順序執(zhí)行每一條指令,執(zhí)行完程序就結束了。

  而,VerilogHDL主要是描述了一個數(shù)字模塊的結構,或者行為。有點像商業(yè)合同,合同里面也會描述產(chǎn)品的結構,產(chǎn)品的功能等等。合同的每一個條款,并不需要嚴格的先后順序,只要把項目的方方面面都考慮完整,寫下來就OK了。VerilogHDL也是這樣。

  我們用VerilogHDL描述數(shù)字模塊的功能,剩下的交給編譯器(如,Quartus),編譯器會根據(jù)我們的要求設計重構FPGA內部硬件。對于大批懶人來說,這技術簡直碉堡了。這就是EDA(Electronic Design Automation,電子設計自動化)。

  好,下面就來認識一下VerilogHDL

  我們先設計一個“數(shù)據(jù)選擇器”:

  s是數(shù)據(jù)選擇控制端,

  a,b是輸入信號,y是輸出信號

  這里寫圖片描述

  代碼如下:

  module mux2_1(a, b, s, y); //模塊名、模塊接口名

  input a, b, s; // 定義輸入端口

  output y; // 定義輸出端口

  /* s為0時,選擇a輸出;

  s為1時,選擇b輸出。*/

  assign y = (s == 0) ? a : b; //輸出信號

  endmodule12345678

  每個Verilog文件中都有一個module 開始,endmodule 結束的代碼塊。

  這個代碼塊的定義了一個名字叫 mux2_1 的模塊,模塊名后面緊跟的括號內寫明了該模塊的接口信號,相當于數(shù)字器件的引腳。

  但是括號內沒有說明接口的信號方向,所以緊跟著另起一行用input 和output 再說明一下。注釋和C語法一樣,可以用// 或 /* */ 。

  assign 是Verilog的關鍵詞,書上稱為連續(xù)賦值。我一般把他視為“連線”操作,assign后面的緊跟的 y 在硬件上是一根導線(或輸出引腳)。

  assign  y = (s == 0) ? a : b;

  這句話的意思是:s如果為0,那么等號左邊就是a,否則就是b。將這個表達式的輸出結果接在輸出引腳 y 上。

  這就是一個簡單的Verilog程序,不需要我們去設計與非門,直接表達你的你想要的功能就好了。然后,編譯下載到FPGA,功能就實現(xiàn)了。

  要注意的是,assign 后面永遠跟著一個 =,它們是一起使用的。

  即,assign xx = zz;

  上面的2選1數(shù)據(jù)選擇器,內部實現(xiàn)結構如下:

  這里寫圖片描述

  所以,上面的assign語句還可以這樣寫,直接使用邏輯表達式:

  assign y = (a & (~ s)) | (b & s);

  這個是在門級對邏輯關系進行描述,所以不屬于行為描述,算是結構描述吧。下面這種描述方式,叫做門原語,算結構描述。這里的關鍵詞wire 表示電路中的導線(信號線)。

  module mux2_1(a, b, s, y);

  input a, b, s;

  output y;

  wire ns, as, bs;

  not(ns, s);//這里使用了一個非門,輸出是ns,輸入是s

  and(as, a, ns);//使用一個與門,輸出as,輸入a和ns

  and(bs, b, s);//使用與門,輸出bs,輸入b和s

  or(y, as, bs);//使用或門,輸出y,輸入as和bs

  endmodule12345678910

  看,這是告訴我們電路中有什么元器件,又是怎么連接的,所以這個屬于結構描述。

  很明顯,有時候結構描述比行為描述要費力得多,而且不太容易理解程序功能。

  另外,上面的這個程序中,這4個邏輯門的順序,可以隨便寫,不用管先后順序。

  這個數(shù)據(jù)選擇器,還可以使用如下行為描述方法:

  module mux2_1(a, b, s, y);

  input a, b, s;

  output y;

  reg y; //reg 表示寄存器

  always @(a, b, s)

  begin

  if(!s) y = a;

  else y = b;

  end

  endmodule1234567891011

  這里reg表示寄存器(存儲器),需要提醒一下的是,assign后面只能接wire型,不能接reg型。(當然output從物理上也是wire)

  為什么不能?因為寄存器的賦值除了需要輸入信號,還需要觸發(fā)信號(例如D觸發(fā)器寄存器),assign?sorry,he can’t。

  always @(a, b, s)中,括號里面的輸入信號a,b,s表示敏感信號。

  always @( ) 是連在一起使用的。

  這句話的意思是,敏感信號列表中的任何一個信號發(fā)生變化,將會引發(fā)

  begin …… end 之間的行為。

  Verilog用begin和end包圍代碼段,相當于c語言中的大括號{ }的功能。

  if(!s) y = a;

  這里的“=”單獨使用,叫做“阻塞賦值”。我把他理解為“串行賦值”。

  比如,有這么一段代碼:

  b=a;

  c=b;

  那么最后,c的值就等于a,這個行為在描述的時候,語句的先后順序,決定了賦值的先后。

  在Verilog中,和它對應的還有一個“非阻塞賦值”,表示方法是 《=,我把這種賦值稱為“并行賦值”。具體區(qū)別,請參考另一篇短文阻塞賦值和非阻塞賦值。

查看詳情

verilog hdl知識

展開查看更多

verilog hdl技術

FPGA打磚塊小游戲設計思路

? 交流問題 ? Q :FPGA打磚塊小游戲,如何基于FPGA用verilog語言在Vivado平臺上寫打磚塊小游戲,最好能用到PS2與VGA。 A :...

2024-12-09 標簽:FPGAVerilog HDLVivado 195 0

例說Verilog HDL和VHDL區(qū)別

例說Verilog HDL和VHDL區(qū)別

Verilog和VHDL之間的區(qū)別將在本文中通過示例進行詳細說明。對優(yōu)點和缺點的Verilog和VHDL進行了討論。

2023-12-20 標簽:NANDasicVHDL語言 3754 0

FPGA入門篇:Verilog計數(shù)器

FPGA入門篇:Verilog計數(shù)器

Verilog HDL是一種硬件描述語言,以文本形式來描述數(shù)字系統(tǒng)硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完...

2023-12-07 標簽:fpgaVerilogVerilog HDL 2946 0

如何完成一個FPGA工程?

prj為工程文件存放目錄;rtl為verilog可綜合代碼存放目錄;tb為測試文件存放目錄;image為設計相關圖片存放目錄;doc為設計相關文檔存放目...

2023-01-10 標簽:fpgaFPGA芯片Verilog HDL 525 0

FPGA技術之Verilog語法基本概念

Verilog HDL是一種用于數(shù)字系統(tǒng)設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型也稱為模塊。Verilo...

2022-12-08 標簽:fpgaVerilogVerilog HDL 2739 0

FPGA設計技巧分享

一般情況下,系統(tǒng)中統(tǒng)一用posedge避免用negedge,降低設計的復雜度,可減少出錯。

2022-07-27 標簽:fpga時序邏輯Verilog HDL 999 0

深入理解FPGA Verilog HDL語法(二)

今天給大俠帶來的是一周掌握FPGA Verilog HDL 語法,今天開啟第二天。上一篇提到了整數(shù)型以及參數(shù)型,此篇我們繼續(xù)來看變量以及后續(xù)其他內容,結...

2022-07-18 標簽:fpga變量Verilog HDL 1665 0

Verilog HDL應用及數(shù)字IC設計與流程概述

Verilog HDL應用及數(shù)字IC設計與流程概述

一、HDL的概念和特征 HDL,Hard Discrimination Language的縮寫,翻譯過來就是硬件描述語言。那么什么是硬件描述語言呢?為什...

2020-10-21 標簽:fpgaIC設計Verilog HDL 4425 0

Verilog HDL語言技術要點

Verilog HDL語言技術要點

基于FPGA的SOC在嵌入式系統(tǒng)應用越來越廣了,往往一個復雜系統(tǒng)使用一個單芯片基于FPGA的SOC就搞定了。比較流行的方案主要有Altera/xilin...

2020-09-01 標簽:C語言Verilog HDL 4391 0

Verilog HDL的程序結構_veriloghdl的關鍵字

Verilog HDL的程序結構_veriloghdl的關鍵字

首先我們不開始講Verilog HDL的語法,我們從Verilog HDL的程序結構出發(fā)。相信大家都看過芯片吧,它有個名字,有個外殼,外殼向外伸出有引腳...

2020-08-27 標簽:VerilogVerilog HDL 2505 0

查看更多>>

verilog hdl資訊

Verilog HDL語言的數(shù)據(jù)類型和運算符

標識符可以是一組字母、數(shù)字、下劃線和$符號的組合,且標識符的第一個字符必須是字母或者下劃線。

2022-07-04 標簽:寄存器運算符Verilog HDL 1371 0

Verilog HDL課程詳細介紹

原文標題:非常詳細的Verilog講義教程 文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。 ? ? ? 審核編輯:彭靜

2022-07-04 標簽:軟件Verilog HDL 802 0

FPGA、Verilog HDL與VHDL的優(yōu)缺點

Verilog HDL 優(yōu)點:類似C語言,上手容易,靈活。大小寫敏感。在寫激勵和建模方面有優(yōu)勢。 缺點:很多錯誤在編譯的時候不能被發(fā)現(xiàn)。 VHDL 優(yōu)點...

2021-08-20 標簽:dspfpgaC語言 4588 0

Verilog HDL verilog hdl和vhdl的區(qū)別

Verilog HDL是一種以文本形式描述數(shù)字系統(tǒng)硬件的結構和行為的硬件描述語言,也可描述邏輯電路圖、邏輯表達式等。Verilog HDL和VHDL是目...

2021-07-23 標簽:VHDLVerilog HDL 1.1萬 0

Verilog HDL中定義的26個有關門級的關鍵字中常用的有哪些?

1、結構描述形式 從電路結構的角度來描述電路模塊,稱為結構描述形式。 Verilog HDL中定義了26個有關門級的關鍵字,比較常用的有8個: and ...

2021-07-02 標簽:Verilog HDL 3061 0

Verilog HDL中的結構建模方式細述

Verilog HDL中的結構建模方式細述

模塊的端口可以是輸入端口、輸出端口或雙向端口。

2021-03-14 標簽:UDP端口Verilog HDL 3457 0

基于Verilog HDL描述語言實現(xiàn)交通燈系統(tǒng)控制器的設計

基于Verilog HDL描述語言實現(xiàn)交通燈系統(tǒng)控制器的設計

 EDA技術是依靠功能強大的電子計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(Hardware Description Language)為系...

2020-07-21 標簽:交通燈系統(tǒng)控制器Verilog HDL 8192 0

Verilog HDL語言在FPGA/CPLD中的應用

Verilog HDL語言在FPGA/CPLD中的應用

通常設計數(shù)字電路大都采用自頂向下將系統(tǒng)按功能逐層分割的層次化設計方法,這比傳統(tǒng)自下向上的EDA設計方法有更明顯的優(yōu)勢(當時的主要設計文件是電路圖)。因為...

2020-07-20 標簽:fpgaedaVerilog HDL 2073 0

Verilog HDL之多路選擇器設計

Verilog HDL之多路選擇器設計

在數(shù)字信號的傳輸過程中,有時需要從多路輸入數(shù)據(jù)中選出某一路數(shù)據(jù),完成此功能的邏輯器件稱為數(shù)據(jù)選擇器,即所謂多路開關,簡稱MUX(Multiplexer)...

2020-07-20 標簽:Verilog HDL多路選擇器 4714 0

7段譯碼器的Verilog HDL源代碼

電子發(fā)燒友網(wǎng)核心提示: 本例程是Verilog HDL源代碼:關于基本組合邏輯功能中7段譯碼器的功能實現(xiàn)源代碼。注意:程序運行在不同軟件平臺可能要作一些...

2012-10-15 標簽:譯碼器Verilog HDLHDL源代碼 2.3萬 0

查看更多>>

verilog hdl數(shù)據(jù)手冊

相關標簽

相關話題

換一批
  • Maxim Integrated
    Maxim Integrated
    +關注
    在 Maxim Integrated,我們正在解決工程問題并支持設計創(chuàng)新,使我們的客戶能夠創(chuàng)造出塑造我們世界的產(chǎn)品。我們創(chuàng)新的高性能模擬和混合信號產(chǎn)品和技術使系統(tǒng)更小、更智能,同時增強了安全性并提高了能源效率。
  • USB3.1
    USB3.1
    +關注
    USB 3.1 Gen2是最新的USB規(guī)范,該規(guī)范由英特爾等公司發(fā)起。數(shù)據(jù)傳輸速度提升可至速度10Gbps。與USB 3.0(即USB3.1 Gen1)技術相比,新USB技術使用一個更高效的數(shù)據(jù)編碼系統(tǒng),并提供一倍以上的有效數(shù)據(jù)吞吐率。
  • CC3200
    CC3200
    +關注
  • ADXL362
    ADXL362
    +關注
    ADI有定制一些極致的產(chǎn)品,ADXL362。主要針對運動健康類的檢測。用戶希望在運動時啟動運動分析,在相對靜止時,系統(tǒng)可以休眠以節(jié)省功耗。
  • 時鐘信號
    時鐘信號
    +關注
    時鐘信號是計算機科學以及相關領域用語,時鐘信號通常被用于同步電路當中,扮演計時器的角色,保證相關的電子組件得以同步運作。時鐘信號是由時鐘發(fā)生器產(chǎn)生的。它有只有兩個電平,一是低電平,另一個是高電平。高電平可以根據(jù)電路的要求而不同,例如 TTL 標準的高電平是 5V。
  • D-PHY
    D-PHY
    +關注
    D-PHY,是MIPI 協(xié)議中的一項,D-PHY提供了對DSI (串行顯示接口)和CSI(串行攝像頭接口)在物理層上的定義D-PHY 描述了源同步,高速,低功耗的物理層。
  • 藍牙BLE
    藍牙BLE
    +關注
    藍牙ble稱低功耗藍牙。低功耗藍牙是藍牙技術聯(lián)盟設計和銷售的一種個人局域網(wǎng)技術。旨在用于醫(yī)療保健、運動健身、信標、安防、家庭娛樂等領域的新興應用。相較經(jīng)典藍牙,低功耗藍牙旨在保持同等通信范圍的同時顯著降低功耗和成本。
  • 匯頂
    匯頂
    +關注
    匯頂科技成立于2002年,作為人機交互領域可靠的技術與解決方案提供商,在包括手機、平板和可穿戴產(chǎn)品在內的智能移動終端人機交互技術領域不斷取得新進展,陸續(xù)推出擁有自主知識產(chǎn)權的Goodix Link技術 、 指紋識別與觸控一體化的IFS技術 、活體指紋檢測技術等 。
  • 射頻功率放大器
    射頻功率放大器
    +關注
    射頻功率放大器是對輸出功率、激勵電平、功耗、失真、效率、尺寸和重量等問題作綜合考慮的電子電路,它還是各式各樣無線發(fā)射機的重要組成部分。
  • 原邊反饋
    原邊反饋
    +關注
  • 集成運算放大器
    集成運算放大器
    +關注
    集成運算放大器簡稱集成運放,是由多級直接耦合放大電路組成的高增益模擬集成電路。自從1964年美國仙童半導體公司研制出第一個單片集成運算放大器μA702以來,集成運算放大器得到了廣泛的應用,它已成為線性集成電路中品種和數(shù)量最多的一類。
  • AD1674
    AD1674
    +關注
  • ab類功放
    ab類功放
    +關注
  • 4.5G
    4.5G
    +關注
  • BAW
    BAW
    +關注
  • MVG
    MVG
    +關注
  • vout
    vout
    +關注
  • AD9858
    AD9858
    +關注
  • MU-MIMO
    MU-MIMO
    +關注
  • 分壓
    分壓
    +關注
  • AD8138
    AD8138
    +關注
  • 差分驅動器
    差分驅動器
    +關注
  • 電容測試儀
    電容測試儀
    +關注
  • 納芯微
    納芯微
    +關注
    蘇州納芯微電子股份有限公司 (Suzhou NOVOSENSE Microelectronics Co., Ltd.) 是高性能高可靠性模擬芯片的研發(fā)設計企業(yè)。
  • 選頻放大器
    選頻放大器
    +關注
      選頻放大器(frequency selective amplifier)對某一段頻率或單一頻率的信號具有突出的放大作用,而對其他頻率的信號具有較強抑制作用的放大單元。
  • AD9958
    AD9958
    +關注
  • Atlas
    Atlas
    +關注
  • MCP3421
    MCP3421
    +關注
  • 直流放大器
    直流放大器
    +關注
    直流放大器就是能放大直流信號的放大器。直流放大器常用于測量儀表。在高精度電位測量和生物電與物理電測量中,電信號往往很弱,而且變化緩慢,含有直流成分,經(jīng)放大后才便于檢測、記錄和處理。此外,在許多情況下,被測信號源的內阻高,要求放大器具有高增益和高輸入阻抗。具有這種特性的直流放大器也適合用作運算放大器。
  • Celeno
    Celeno
    +關注

關注此標簽的用戶(17人)

jf_37439352 1114502831 jf_10800708 發(fā)發(fā)開開心心 LYQWMY c123cccc 不羈的前奏D 咳咳12138 瑯琊一方 youwozuozhujun 夢情緣 有生之年_欣喜相逢c

編輯推薦廠商產(chǎn)品技術軟件/工具OS/語言教程專題