chapter 11 verilog硬體描述語言 - ntut.edu.twtylee/courses/91_1/fpga/... ·...

27
1 Chapter 11 Verilog硬體描述語言 Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器 Verilog的描述格式 Verilog的資料型態 Verilog的事件基礎時間控制 Verilog的輸入輸出埠描述 2 Chapter 11 Verilog硬體描述語言 Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器 Verilog的描述格式 Verilog的資料型態 Verilog的事件基礎時間控制 Verilog的輸入輸出埠描述

Upload: others

Post on 14-Aug-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

1

1

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

2

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

Page 2: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

2

3

Verilog硬體描述語言的基本架構

module

Behavioral-level

Dataflow-level

Gate-level

Switch-level

enmodule

4

模組內之四種層次描述電路

開關層次(Switch-Level):描述元件開關及儲存點組合而成

邏輯層次(Gate-Level):描述邏輯閘的連接形式

資料流層次(Data-Level):描述電路的資料如何在暫存器中儲存與傳送

行為層次(Behavioral-Level):描述模組之功能

Page 3: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

3

5

暫存器轉移層次(Register-Transfer-Level, RTL)

資料流層次(Data-Level) + 行為層次(Behavioral-Level)經合成而形成暫存器轉移層次(Register-Transfer-Level, RTL)

6

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

Page 4: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

4

7

Verilog模組描述的基本格式

Module <模組名稱><模組輸入輸出埠宣告>

模組四個層次的描述;

endmodule

8

以開關層次描述一NOT閘之模組

module inv (ina, out);input ina;output out;supply1 vcc;supply0 gnd;pmos (out, vcc, ina);nmos (gnd, out, ina);endmodule

Page 5: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

5

9

以邏輯閘層次描述一OR閘之模組

module ORGATE (A, B, F);input A;input B;output F;or u1(F, A, B);endmodule

10

以資料流層次描述一AND閘之模組

module ANDGATE (A, B, F);input A;input B;output F;wire F;assign F=A&B;endmodule

Page 6: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

6

11

以行為層次描述一NAND閘之模組

module NANDGATE (A, B, F);input A;input B;output F;reg F;always @(A or B);beginF=~(A & B);endendmodule

12

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

Page 7: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

7

13

Create a New Project

14

Design Entry

Page 8: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

8

15

Create new document

16

Design Wizard

Page 9: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

9

17

Design Wizard---Language

18

Design Wizard---Name

Page 10: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

10

19

Design Wizard---Ports

20

OR Gate HDL Editor

Page 11: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

11

21

Insert Programs

22

Check Syntax

Page 12: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

12

23

Synthesize Gate level circuit

24

Create Macro

Page 13: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

13

25

Update Macro

26

在Schematic Editor取出OR GATE

Page 14: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

14

27

模擬結果

28

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

Page 15: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

15

29

Verilog 的基本語法規定

關鍵字如module, endmodule, assign, wire, always, input, output, begin, end…等必須使用小寫

識別字的大小寫是有差別的,第一個字必須是使用英文字母

單行註解用//; 多行註解用 /* … */字串以雙引號表示,如 “This is a string”

30

Verilog 的數字格式(1)

有規定長度的數字(sized numbers)±<size>’<base format><number><size>:位元數

<base format>:d 10進位,h 16進位, o 8進位,b 2進位

Example: F=4’b0101; A=16’h6FA3

Page 16: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

16

31

Verilog 的數字格式(2)

不規定長度的數字(unsized numbers)’<base format><number><base format>:d 10進位,h 16進位, o

8進位,b 2進位

位元數之大小由模擬器或硬體機定值來決定

Example: b=’ha5; b=a5(32位元之16進位數)

32

Verilog的運算子

Page 17: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

17

33

34

Page 18: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

18

35

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

36

(1)、數值組集(Value Set)Verilog有四種表示數值,即 0、1、x、z以及八種信號強度

Page 19: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

19

37

(2) 、接線(net)接線(net)表示在硬體元件的接點連接線

關鍵字可以分為下列六種

wire: 內定為一個位元的值,機定值為高阻抗

wand: Wired-AND型接線

waor: Wired-OR型接線

tritriortrireg

38

(3) 、暫存器(reg)Verilog中reg相當於一個變數,其機定值為xExample: reg out; 宣告一個out變數,reg所宣告的變數必須在always的區塊描述內使用module NANDGATE (A, B, F);input A;input B;output F;

reg F;always @(A or B);beginF=~(A & B);endendmodule

Page 20: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

20

39

(4) 、向量(Vectors)向量(Vectors)表示多位元的元件,wire及reg都可定義為向量格式

Examples: wire A[7:0]; //宣告有一8位元的BUSreg [0:15] out; //宣告有一16位元寬度的向量暫存器變數out

40

(5) 、整數(Integer)整數之關鍵字為integer,最少要32位元,integer宣告可帶正負號

Example: integer count;initial count = 0;

Page 21: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

21

41

(6) 、實數(Real)實數之關鍵字為real,可用十進制或帶有指數表示

Example: real w, x;initialbeginw = 5.2;x = 25e6;

42

(7) 、時間(Time)時間之關鍵字為time,主要功能在描述儲存模擬的時間,也就是取得目前的模擬時間,最少為64位元的資料

Example: time storage_time;initial storage_time=$time

Page 22: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

22

43

(8) 、陣列(Arrays)Verilog所提供陣列的儲存內容可以是整數、暫存資料、時間及向量,但不能為實數而且只適用於一維陣列

表示格式為<array_name>[<subscript>]integer A[0:15];16個變數A的陣列

reg [3:0] B[0:15];16個變數B的陣列,每一個B的位元寬度為4位元

44

(9) 、記憶體(Memories)記憶體是一個暫存器的陣列,而陣列中的每一個物件都視為一個word,每一個word可以是1個位元或是多個位元所組成

reg [15:0] memory1 [0:1023]/*宣告記憶體memory1為16位元1K word的大小*/reg memory2 [0:1023]/*宣告記憶體memory2為1位元1K word的大小*/

Page 23: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

23

45

(10) 、參數(Parameters)主要作用在設定一個固定常數,此常數可在每一次編譯時更改其值

parameter LGG=100;//宣告一常數LGG等於100

46

(11) 、字串(Strings)字串的作用在指定給暫存器,若長度大於reg的長度,則其左邊的位元會被刪掉,若長度小於reg的長度,則其左邊的位元會以零補之

Reg [8*16:1] string_value;initialstring_value=“good morning”

Page 24: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

24

47

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

48

事件基礎時間控制(Event-based timing control)

Event就是一個wire當暫存器改變時就是事件,此事件可用來觸發一個敘述或包含多個敘述的區塊,且模組的輸入埠接收到一個新值也算是一個事件

Event-based timing control可包含(1) Regular event control (2) Named event control (3) Event OR control (4) Level-sensitive timing control

Page 25: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

25

49

Regular event control代表符號為@,它是表示當信號產生正緣(posedge),負緣(negedge),轉換(transition)或數值改變時,其相關敘述才會被執行

always @(clock) Q=J; 當clock信號值改變時就執行 Q=J 敘述

always @(posedge clock) Q=J; 當clock信號正緣觸發時就執行 Q=J 敘述

50

Event OR control指使用多個信號或事件去觸發一個敘述或含有多個敘述的區塊來執行,因此將這些多個信號或事件以or(或)來表示always @(reset or clock or A or B)begin

if (reset)F=1’b0;

elseif (clock)F=A+B;

end

Page 26: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

26

51

Chapter 11 Verilog硬體描述語言

Verilog硬體描述語言的基本架構

Verilog模組描述的基本格式

如何開啟進入Verilog硬體描述語言編輯器

Verilog的描述格式

Verilog的資料型態

Verilog的事件基礎時間控制

Verilog的輸入輸出埠描述

52

Verilog的輸入輸出埠描述

輸入埠(input)輸出埠(output)雙向埠(inout)Examplesmodule Addr(F1, F2, D, SUM, C0)input [3:0] F1, F2;output [3:0] SUM;output C0;input D;

Page 27: Chapter 11 Verilog硬體描述語言 - ntut.edu.twtylee/Courses/91_1/FPGA/... · Verilog硬體描述語言的基本架構 Verilog模組描述的基本格式 如何開啟進入Verilog硬體描述語言編輯器

27

53

Question & Answer