FPGA學習筆記(一)Verilog語法基礎

一、變量類型

    ①數值

    數值表示採用 <二進制位數>'<數值表示的進制><數值>的結構。

    其中進制可以爲b、o、d、h分別代表二、八、十、十六進制。

    例如22'd0代表22位二進制數用十進制表示爲0。

    ②寄存器類型

    reg聲明寄存器類型變量,如 reg[0:3] my[0:63];是64個4位寄存器構成的存儲器。

    其中[22:0]代表位寬爲23位,最高位在前,含義是[msb:lsb]。

    注意,存儲器賦值不能在一條語句內完成,但寄存器賦值可以,類似於數組元素不能一次性全部賦值。

    ③還有input,output類型變量

    ④參數類型parameter

    parameter類似於const類型,是常量,與const的區別是可以在定義時不初始化,但僅能賦值一次。常用於定義延時和變量寬度。

二、基本用法

    模塊開始用module,結束用endmodule

 2.1 延時語句

     ①`timescale 1ns/1ns //定義延時單位和精度,單位和精度均爲1ns,注意開頭爲反引號。

     反引號`代表的是編譯器指令,與C語言中#一樣。

     ②assign #n Sum= A + B; //n應該替換爲數字,代表幾個延時單位

     每當右邊的操作數有所變化時,延時n個單位後,會執行這條語句,將新值賦給左邊。

 2.2 行爲描述語句

   2.2.1 初始化語句

     初始化語句只執行一次。

     用法

     initial

     begin

      //code

     end

   2.2.2 循環語句

     always @ (條件)

     begin

      //code

     end

   注意:在塊外的語句都是並行,在begin-end內是串行,在fork-join內是並行的。

三 操作符

   當使用賦值運算符的時候,=爲擁塞賦值,<=爲非擁塞賦值。擁塞賦值的含義是當前面的賦值語句完成後,纔會執行下面的賦值語句。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章