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

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

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

Verilog HDL指定用戶定義原語UDP的能力

FPGA之家 ? 來源:OpenFPGA ? 作者:碎碎思 ? 2022-08-08 11:46 ? 次閱讀

用戶定義的原語

在前一章中,我們介紹了Verilog HDL提供的內(nèi)置基本門。本章講述Verilog HDL指定用戶定義原語U D P的能力。

U D P的實例語句與基本門的實例語句完全相同,即 U D P實例語句的語法與基本門的實例語句語法一致。

6.1 UDP的定義

使用具有如下語法的U D P說明定義U D P。

p r i m i t i v e U D P _ n a m e (OutputName, List_of_inputs )

O u t p u t _ d e c l a r a t i o n

L i s t _ o f _ i n p u t _ d e c l a r a t i o n s

[R e g _ d e c l a r a t i o n]

[I n i t i a l _ s t a t e m e n t]

t a b l e

L i s t _ o f _ t a b e l _ e n t r i e s

e n d t a b l e

e n d p r i m i t i v e

U D P的定義不依賴于模塊定義,因此出現(xiàn)在模塊定義以外。也可以在單獨的文本文件中

定義U D P。U D P只能有一個輸出和一個或多個輸入。第一個端口必須是輸出端口。此外,輸出可以取值0、1或x(不允許取z值)。輸入中出現(xiàn)值z以x處理。U D P的行為以表的形式描述。在U D P中可以描述下面兩類行為:

1) 組合電路

2) 時序電路(邊沿觸發(fā)和電平觸發(fā))

6.2 組合電路UDP

在組合電路U D P中,表規(guī)定了不同的輸入組合和相對應(yīng)的輸出值。沒有指定的任意組合輸出為x。下面以2 - 1多路選擇器為例加以說明。

p r i m i t i v e MUX2x1 (Z, Hab, Bay, Sel ) ;

o u t p u t Z;

i n p u t Hab,Bay, Sel;

t a b l e

// Hab Bay Sel : Z 注:本行僅作為注釋。

0 ? 1 : 0 ;

1 ? 1 : 1 ;

? 0 0 : 0 ;

? 1 0 : 1 ;

0 0 x : 0 ;

1 1 x : 1 ;

e n d t a b l e

e n d p r i m i t i v e

字符?代表不必關(guān)心相應(yīng)變量的具體值,即它可以是0、1或x。輸入端口的次序必須與表中各項的次序匹配,即表中的第一列對應(yīng)于原語端口隊列的第一個輸入 (例子中為 H a b),第二列是 B a y,第三列是 S e l。在多路選擇器的表中沒有輸入組合 0 1x項(還有其它一些項 );在這種情況下,輸出的缺省值為 x(對其它未定義的項也是如此 )。

91c05330-16ca-11ed-ba43-dac502259ad0.png

圖6 - 1為使用2 - 1多路選擇器原語組成的4 - 1多路選擇器的示例。

91cc45c8-16ca-11ed-ba43-dac502259ad0.png

如上例所示,在U D P實例中,總共可以指定 2個時延,這是由于U D P的輸出可以取值0、1或x(無截止時延)。

6.3 時序電路UDP

在時序電路U D P中,使用1位寄存器描述內(nèi)部狀態(tài)。該寄存器的值是時序電路U D P的輸出值。共有兩種不同類型的時序電路U D P:一種模擬電平觸發(fā)行為;另一種模擬邊沿觸發(fā)行為。時序電路U D P使用寄存器當(dāng)前值和輸入值決定寄存器的下一狀態(tài) (和后繼的輸出)。

6.3.1 初始化狀態(tài)寄存器

時序電路U D P的狀態(tài)初始化可以使用帶有一條過程賦值語句的初始化語句實現(xiàn)。形式如下:

i n i t i a l r e g _ n a m e = 0,1,or x;

初始化語句在U D P定義中出現(xiàn)。

6.3.2 電平觸發(fā)的時序電路UDP

下面是D鎖存器建模的電平觸發(fā)的時序電路 U D P示例。只要時鐘為低電平 0,數(shù)據(jù)就從輸入傳遞到輸出;否則輸出值被鎖存。

p r i m i t i v e Latch (Q, Clk, D) ;

o u t p u t Q;

r e g Q;

i n p u t Clk, D;

t a b l e

// Clk D Q(State) Q( n e x t )

0 1 : ? : 1 ;

0 0 : ? : 0 ;

1 ? : ? : - ;

e n d t a b l e

e n d p r i m i t i v e

“-”字符表示值“無變化”。注意U D P的狀態(tài)存儲在寄存器D中。

6.3.3 邊沿觸發(fā)的時序電路UDP

下例用邊沿觸發(fā)時序電路U D P為D邊沿觸發(fā)觸發(fā)器建模。初始化語句用于初始化觸發(fā)器的狀態(tài)。

91e26a60-16ca-11ed-ba43-dac502259ad0.png

表項( 0 1 )表示從0轉(zhuǎn)換到1,表項( 0 x )表示從0轉(zhuǎn)換到x,表項( ? 0 )表示從任意值( 0 , 1或x)轉(zhuǎn)換到0,表項( ? ? )表示任意轉(zhuǎn)換。對任意未定義的轉(zhuǎn)換,輸出缺省為 x。

假定D _ E d g e _ F F為U D P定義,它現(xiàn)在就能夠象基本門一樣在模塊中使用,如下面的 4位寄存器所示。

91ec5296-16ca-11ed-ba43-dac502259ad0.png

6.3.4 邊沿觸發(fā)和電平觸發(fā)的混合行為

在同一個表中能夠混合電平觸發(fā)和邊沿觸發(fā)項。在這種情況下,邊沿變化在電平觸發(fā)之前處理,即電平觸發(fā)項覆蓋邊沿觸發(fā)項。下例是帶異步清空的D觸發(fā)器的U D P描述。

91ff7470-16ca-11ed-ba43-dac502259ad0.png

6.4 另一實例

下面是3位表決電路的U D P描述。如果輸入向量中存在2個或更多的1,則輸出為1。

920bd3fa-16ca-11ed-ba43-dac502259ad0.png

6.5 表項匯總

922512d4-16ca-11ed-ba43-dac502259ad0.png

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

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110101
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47390
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    325

    瀏覽量

    33941

原文標(biāo)題:Verilog入門-用戶定義的原語

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

收藏 人收藏

    評論

    相關(guān)推薦

    Verilog HDL教程(共172頁pdf電子書下載)

    l o g硬件描述語言的主要能力: ? 基本邏輯門,例如a n d、o r和n a n d等都內(nèi)置在語言中。 ? 用戶定義原語(U D P)創(chuàng)建的靈活性。
    發(fā)表于 07-03 05:19

    【FPGA學(xué)習(xí)】Verilog HDL有哪些特點

    Verilog HDL 的特點Verilog HDL 語言不僅定義了語法,而且對每個語法結(jié)構(gòu)都定義
    發(fā)表于 09-18 09:33

    Verilog HDL入門教程(全集)

    的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時序建模。Verilog HDL 語言具有下述描述能力:設(shè)計的行為特性、設(shè)計的數(shù)據(jù)流特性、設(shè)計的結(jié)構(gòu)
    發(fā)表于 11-30 19:03

    Verilog HDL華為入門教程

    Verilog HDL 華為入門教程 本文主要介紹了Verilog HDL 語言的一些基本知識,目的是使初學(xué)者能夠迅速掌握HDL設(shè)計方法,
    發(fā)表于 02-11 08:35 ?140次下載

    什么是Verilog HDL?

    什么是Verilog HDL? Verilog HDL是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)
    發(fā)表于 01-18 14:53 ?4160次閱讀
    什么是<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>?

    Verilog HDL程序基本結(jié)構(gòu)與程序入門

    Verilog HDL程序基本結(jié)構(gòu)與程序入門 Verilog HDL程序基本結(jié)構(gòu)  Verilog
    發(fā)表于 02-08 11:43 ?2302次閱讀

    Verilog HDL語言簡介

    Verilog HDL語言簡介 1.什么是Verilog HDLVerilog HDL是硬件描述語言的一種,用于數(shù)
    發(fā)表于 02-09 08:59 ?3910次閱讀

    Verilog HDL程序設(shè)計與實踐

    Verilog HDL程序設(shè)計與實踐著重介紹了Verilog HDL語言
    發(fā)表于 10-29 14:45 ?21次下載

    Verilog HDL硬件描述語言_用戶定義原語

    本章講述Verilog HDL指定用戶定義原語UDP
    發(fā)表于 04-25 16:09 ?12次下載

    Verilog HDL入門教程之Verilog HDL數(shù)字系統(tǒng)設(shè)計教程

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog HDL入門教程之Verilog HDL數(shù)字系統(tǒng)設(shè)計教程。
    發(fā)表于 09-20 15:51 ?83次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>入門教程之<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>數(shù)字系統(tǒng)設(shè)計教程

    Verilog HDL入門教程

    本文主要介紹了Verilog HDL 語言的一些基本知識,目的是使初學(xué)者能夠迅速掌握HDL 設(shè)計方法,初步了解并掌握Verilog HDL
    發(fā)表于 02-11 08:00 ?99次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>入門教程

    Verilog HDL指定用戶定義原語UDP能力介紹

    用戶定義原語 在前一章中,我們介紹了Verilog HDL提供的內(nèi)置基本門。本章講述Verilog
    的頭像 發(fā)表于 03-05 15:30 ?1699次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>指定</b><b class='flag-5'>用戶</b><b class='flag-5'>定義</b><b class='flag-5'>原語</b><b class='flag-5'>UDP</b>的<b class='flag-5'>能力</b>介紹

    Verilog HDL指定用戶定義原語U D P的能力

    定義U D P。U D P只能有一個輸出和一個或多個輸入。第一個端口必須是輸出端口。此外,輸出可以取值0、1或x(不允許取z值)。輸入中出現(xiàn)值z以x處理。U D P的行為以表的形式描述。在U D P中可以描述下面兩類行為:
    的頭像 發(fā)表于 04-08 10:43 ?1863次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>指定</b><b class='flag-5'>用戶</b><b class='flag-5'>定義</b><b class='flag-5'>原語</b>U D P的<b class='flag-5'>能力</b>

    Verilog HDL入門教程-Verilog HDL的基本語法

    Verilog HDL入門教程-Verilog HDL的基本語法
    發(fā)表于 01-07 09:23 ?179次下載

    Gowin HDL編碼風(fēng)格用戶指南

    本手冊主要描述高云?HDL 編碼風(fēng)格要求及原語HDL 編碼實現(xiàn),旨在 幫助用戶快速熟悉高云 HDL 編碼風(fēng)格和
    發(fā)表于 09-15 16:02 ?0次下載
    Gowin <b class='flag-5'>HDL</b>編碼風(fēng)格<b class='flag-5'>用戶</b>指南