自學(xué)FPGA:Verilog基本語(yǔ)法規則(一)

發(fā)布時(shí)間:2020-3-15 14:54    發(fā)布者:dameihuaxia
1.詞法規定
  1.1間隔符
  (類(lèi)似于C語(yǔ)言

  1.2標識符和關(guān)鍵詞
      標識符:英文字母、數字、$符和下劃線(xiàn)組成(首字符必須為英文字母或下劃線(xiàn))。

      轉義標識符:如:\***。

2.四種邏輯值
0        邏輯0、邏輯假
1        邏輯1、邏輯真
x或X        不確定值(未知邏輯狀態(tài))
z或Z        高阻態(tài)
3.八種強度值
                                                                        最強————>最弱
強度等級名稱(chēng)        supply        strong       
pull

large        weak        medium        small        highz
類(lèi)型        驅動(dòng)        驅動(dòng)        驅動(dòng)        存儲        驅動(dòng)        存儲        存儲        高阻抗
4.常量及其表示
  4.1整數型表示
    格式:   

<+/- size>'
  例如:

3'b101          //3位二進(jìn)制數101
5'o37           //5位八進(jìn)制數37
8'b1001_1100    //八位二進(jìn)制數,等同于8'b10011100
  注意:在這里的‘_’無(wú)實(shí)際意義,可以隨便在整數或實(shí)數中使用,方便讀數。



  4.2實(shí)數型常量
(實(shí)數通過(guò)四舍五入轉換為整數)

  例如:

  42.45轉換為整數42; 92.5,92.699轉化為93;-15.62轉換為-16.  



  4.3字符串常量
(每個(gè)字符串包括空格都被看做8位的ACSII值序列)

  例如:

  存儲字符串"FPGA"就需要定義一個(gè)8*4位的變量。

reg [8*4:1] messsage;
initial begin
    message = "FPGA";
end
  對于初學(xué)者來(lái)說(shuō),reg、initial這些請無(wú)視掉,只用了解這個(gè)格式就行。



  4.4參數語(yǔ)句
  格式:

parameter
    param1 = xxxx,
    param2 = xxxx,
    ......;
  parameter聲明的符號常量常量通常出現在module(模塊)內部,參數常用于指令yan'延遲、變量的wei'位寬和狀態(tài)值de等(類(lèi)似于C語(yǔ)言的局部參數)

  補:define是宏定義,通常放在module外部,改常量是一個(gè)全局變量。

  localparam(局部參數)是模塊內部參數(無(wú)傳遞,類(lèi)似于C語(yǔ)言的函數內部參數)。

  5.數據類(lèi)型
  5.1線(xiàn)網(wǎng)類(lèi)型
  wire、tri(wire為一般連線(xiàn);tri為驅動(dòng)的線(xiàn)網(wǎng));

  wor、trior(一個(gè)線(xiàn)網(wǎng)被多個(gè)信號驅動(dòng)qing情況);

  wand、triand(一個(gè)線(xiàn)網(wǎng)被多個(gè)信號驅動(dòng)qing情況);

  trireg(電荷保持特性);

  tri1(上拉電阻);

  tri0(下拉電阻);

  supply1(電源建模、高點(diǎn)平);

  supply0(對地建模、低電平)。



  線(xiàn)網(wǎng)變量聲明:

<[msb:lsb]>變量1,2,3,...,n;
  例如:

wire A,B;                //兩個(gè)1位wire類(lèi)型的變量
wire [7:0] Databus;      //Databus位8位向量的wire變量
supply0 logic_0,vss;     //‘地’
supply1 logic_1,vdd;     //‘電源線(xiàn)’
  建議別對同一變量多次賦值。



  5.2寄存器類(lèi)型
(只能在initial或always塊內部被賦值)

  reg、integer、time未賦值前為x;

  real、realtime默認值是0.

  reg:寄存器變量,默認值是x

  格式

reg <[msb:lsb]> 變量1,2,3,...,n;
  例如:

reg clock,a;      //1位的reg型變量clock,a;
reg [3:0] cnt;    //4位的reg型變量cnt,等效于:cnt[3],cnt[2],cnt[1],cnt[0];
  integer:整數型寄存器變量

  (變量保持的是整數值)

  格式:

integer 1,2,3,...,n<[msb:lsb]>;
  例如:

integer A,B,C;         //3個(gè)整數型變量;
integer HINT[3:0];     //一個(gè)由四個(gè)整數變量組成的數組;
  tiem型變量主要用于存儲和處理仿真時(shí)間

time 1,2,3,...,n [msb:lsb]
  reale和realtime變量通產(chǎn)用于對實(shí)數型產(chǎn)量常量進(jìn)行存儲和運算,實(shí)數不能定義范圍,默認值是0

real 1,2,3,...,n;          //實(shí)型變量聲明
realtime 1,2,3,...,n;      //實(shí)型時(shí)間變量聲明
  參考文獻
  1.《FPGA自學(xué)筆記——設計與驗證》

  2.《可編程邏輯電路設計基礎教程》

  3.《Verilog HDL與FPGA數字系統設計》

  4.《Verilog HDL入門(mén)》
————————————————
版權聲明:本文為CSDN博主「JaysonRen」的原創(chuàng )文章,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/JaysonRen/article/details/82179137

本文地址:http://selenalain.com/thread-579067-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页