新聞中心

        Verilog HDL簡明教程(part1)

        作者: 時(shí)間:2017-10-11 來源:網(wǎng)絡(luò) 收藏

        第一章 簡介

        Verilog HDL是一種硬件描述語言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。

        本文引用地址:http://www.104case.com/article/201710/365607.htm

        Verilog HDL 語言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,Verilog HDL語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。

        Verilog HDL語言不僅定義了語法,而且對每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。語言從C編程語言中繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,Verilog HDL語言的核心子集非常易于學(xué)習(xí)和使用,這對大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然,完整的硬件描述語言足以對從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。

        Verilog HDL語言最初是于1983年由Gateway Design AutomaTIon公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。那時(shí)它只是一種專用語言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,Verilog HDL 作為一種便于使用且實(shí)用的語言逐漸為眾多設(shè)計(jì)者所接受。在一次努力增加語言普及性的活動(dòng)中,Verilog HDL語言于1990年被推向公眾領(lǐng)域。 Open Verilog InternaTIonal (OVI)是促進(jìn)Verilog發(fā)展的國際性組織。1992年, OVI決定致力于推廣Verilog OVI標(biāo)準(zhǔn)成為IEEE標(biāo)準(zhǔn)。這一努力最后獲得成功,Verilog 語言于1995年成為IEEE標(biāo)準(zhǔn),稱為IEEE Std 1364-1995。完整的標(biāo)準(zhǔn)在Verilog硬件描述語言參考手冊中有詳細(xì)描述。
        主要能力

        下面列出的是Verilog硬件描述語言的主要能力:
        * 基本邏輯門,例如and、or和nand等都內(nèi)置在語言中。
        * 用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時(shí)序邏輯原語。
        * 開關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos 和nmos等也被內(nèi)置在語言中。
        * 提供顯式語言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。
        * 可采用三種不同方式或混合方式對設(shè)計(jì)建模。這些方式包括:行為描述方式—使用過程化結(jié)構(gòu)建模;數(shù)據(jù)流方式—使用連續(xù)賦值語句方式建模;結(jié)構(gòu)化方式—使用門和模塊實(shí)例語句描述建模。
        * Verilog HDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件。
        * 能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。
        * 設(shè)計(jì)的規(guī)模可以是任意的;語言不對設(shè)計(jì)的規(guī)模(大小)施加任何限制。
        * Verilog HDL不再是某些公司的專有語言而是IEEE標(biāo)準(zhǔn)。

        * 人和機(jī)器都可閱讀Verilog 語言,因此它可作為EDA的工具和設(shè)計(jì)者之間的交互語言。

        * Verilog HDL語言的描述能力能夠通過使用編程語言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問Verilog 模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合。

        * 設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí),包括進(jìn)程和隊(duì)列級(jí)。

        * 能夠使用內(nèi)置開關(guān)級(jí)原語在開關(guān)級(jí)對設(shè)計(jì)完整建模。

        * 同一語言可用于生成模擬激勵(lì)和指定測試的驗(yàn)證約束條件,例如輸入值的指定。

        * Verilog HDL 能夠監(jiān)控模擬驗(yàn)證的執(zhí)行,即模擬驗(yàn)證執(zhí)行過程中設(shè)計(jì)的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值比較,在不匹配的情況下,打印報(bào)告消息。

        * 在行為級(jí)描述中,Verilog HDL不僅能夠在RTL級(jí)上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級(jí)描述及其算法級(jí)行為上進(jìn)行設(shè)計(jì)描述。

        * 能夠使用門和模塊實(shí)例化語句在結(jié)構(gòu)級(jí)進(jìn)行結(jié)構(gòu)描述。

        * Verilog HDL 的混合方式建模能力,即在一個(gè)設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模。

        * Verilog HDL 還具有內(nèi)置邏輯函數(shù),例如(按位與)和|(按位或)。
        * 對高級(jí)編程語言結(jié)構(gòu),例如條件語句、情況語句和循環(huán)語句,語言中都可以使用。

        * 可以顯式地對并發(fā)和定時(shí)進(jìn)行建模。

        * 提供強(qiáng)有力的文件讀寫能力。

        * 語言在特定情況下是非確定性的,即在不同的模擬器上模型可以產(chǎn)生不同的結(jié)果;例如,事件隊(duì)列上的事件順序在標(biāo)準(zhǔn)中沒有定義。
        習(xí)題
        1. Verilog HDL 是在哪一年首次被IEEE標(biāo)準(zhǔn)化的?

        2. Verilog HDL支持哪三種基本描述方式?

        3. 可以使用Verilog HDL描述一個(gè)設(shè)計(jì)的時(shí)序嗎?

        4. 語言中的什么特性能夠用于描述參數(shù)化設(shè)計(jì)?

        5. 能夠使用Verilog HDL 編寫測試驗(yàn)證程序嗎?

        6. Verilog HDL 是由哪個(gè)公司最先開發(fā)的?

        7. Verilog HDL中的兩類主要數(shù)據(jù)類型什么?

        8. UDP代表什么?

        9. 寫出兩個(gè)開關(guān)級(jí)基本門的名稱。

        10. 寫出兩個(gè)基本邏輯門的名稱。



        關(guān)鍵詞: VerilogHDL FPGA

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 拉孜县| 靖江市| 阿瓦提县| 马山县| 郎溪县| 岳池县| 虎林市| 当涂县| 奉贤区| 夏邑县| 辉县市| 永城市| 茌平县| 龙陵县| 墨江| 行唐县| 东海县| 哈巴河县| 海门市| 图木舒克市| 含山县| 平潭县| 隆德县| 澄江县| 舟山市| 盖州市| 蕉岭县| 北宁市| 南澳县| 邯郸县| 曲阜市| 新晃| 章丘市| 晴隆县| 乐东| 乌拉特中旗| 葫芦岛市| 育儿| 多伦县| 静安区| 清流县|