Chapter 5 Verilog 硬體描述語言

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

計算機程式語言實習課.
教育概論 幼一甲 第四小組 1.林瑞敏 2.許曉文 20.張舒婷 21.陳香如.
Word高级应用——制作毕业论文 Word高级应用——制作毕业论文 6..
JAVA 程式設計 資訊管理系 - 網路組.
Chapter 5 Sequential Logic Circuit
Chapter 5 迴圈.
正反器 一、循序邏輯電路 二、動作情形:用時序(timing),其次輸出( )是由外界輸入與( )所共同決定。
數位邏輯設計與實習 Ch07 Verilog語法.
Visual C++ introduction
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 30, 2017 ZDMC.
第七章 MSP430時脈計時器A模組.
Chapter 5 Verilog 硬體描述語言
Chapter 5 Verilog硬體描述語言
2-3 基本數位邏輯處理※.
Ch01-2 Verilog語法 資料流(DataFlow)設計 行為(Behavior)設計
第17章 Verilog中的高级结构 学习内容: 任务和函数的定义和调用 怎样使用命名块 怎样禁止命名块和任务 有限状态机(FSM)及建模.
EDA技术 廖义奎.
使用VHDL設計—4位元加法器 通訊一甲 B 楊穎穆.
第四阶段实验 ISP器件的设计与应用 一、实验目的 二、实验内容与要求 三、ISP器件的开发流程 四、EDA Pro2K实验系统介绍
使用VHDL設計—4位元位移器 通訊一甲 B 楊穎穆.
欢迎参加VHDL培训 VHDL培训教程 浙江大学电子信息技术研究所 电子设计自动化(EDA)培训中心
Java程式概觀.
義守大學電機工程學系 陳慶瀚 第2章 VHDL基本語法 義守大學電機工程學系 陳慶瀚
SQL Stored Procedure SQL 預存程序.
Verilog硬件描述语言基础.
AIM-spice Miao-shan, Li.
Programmable Logic Architecture Verilog HDL FPGA Design
Java 程式設計 講師:FrankLin.
语法进阶.
时序电路设计 刘鹏 浙江大学信息与电子工程系 Apr. 24, 2011 EE141
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Chap3 Linked List 鏈結串列.
精简指令集(RISC)CPU的构造原理和设计方法
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 29, 2016 ZDMC.
第一單元 建立java 程式.
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
第一章 直角坐標系 1-3 函數圖形.
第 19 章 XML記憶體執行模式.
第七單元 正反器 (教科書第四章) 數位系統實驗
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
ASP基礎— VBScript基本語法 張森.
第14章 对验证的支持 学习内容 理解Verilog文本输出 理解不同的读取仿真时间的系统函数 理解 Verilog文件I/O功能.
计算机学院 数字逻辑实验的要求.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
计算机EDA设计 教 程 北航计算机学院 艾明晶.
CH05. 選擇敘述.
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
设计示例一 用门级结构描述D触发器:.
數位邏輯設計與實習 Ch08實驗室實習.
MicroSim pspice.
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
一、簡介 電腦硬體設計:純硬體電路(hardware)及韌體電 路(firmware)兩種方式。
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
資料表示方法 資料儲存單位.
FPGA组合逻辑 王安然.
Verilog HDL 基本语法 STEP 2016/12/3.
按键处理部分 王安然.
Programming & Language Telling the computer what to do
第三章 Arduino互動程式設計入門 Arduino程式基礎 認識變數 認識數字系統 認識常數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
快取映射 之直接對映 計算整理.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

Chapter 5 Verilog 硬體描述語言

Chapter 5 Verilog硬體描述語言

Verilog硬體描述語言的基本架構 module Switch-level Gate-level Dataflow-level Behavioral-level enmodule

模組內之四種層次描述電路 開關層次(Switch-Level):描述元件開關及儲存點組合而成 邏輯層次(Gate-Level):描述邏輯閘的連接形式 資料流層次(Data-Level):描述電路的資料如何在暫存器中儲存與傳送 行為層次(Behavioral-Level):描述模組之功能

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

Chapter 5 Verilog硬體描述語言

Verilog模組描述的基本格式 Module <模組名稱><模組輸入輸出埠宣告> 模組四個層次的描述; endmodule

以開關層次描述一NOT閘之模組 module inv (ina, out); input ina; output out; supply1 vcc; supply0 gnd; pmos (out, vcc, ina); nmos (gnd, out, ina); endmodule

以邏輯閘層次描述一OR閘之模組 module ORGATE (A, B, F); input A; input B; output F; or u1(F, A, B); endmodule

以資料流層次描述一AND閘之模組 module ANDGATE (A, B, F); input A; input B; output F; wire F; assign F=A&B; endmodule

以行為層次描述一NAND閘之模組 module NANDGATE (A, B, F); input A; input B; output F; reg F; always @(A or B); begin F=~(A & B); end endmodule

Chapter 5 Verilog硬體描述語言

Verilog 的基本語法規定 關鍵字如module, endmodule, assign, wire, always, input, output, begin, end…等必須使用小寫 識別字的大小寫是有差別的,第一個字必須是使用英文字母 單行註解用//; 多行註解用 /* … */ 字串以雙引號表示,如 “This is a string”

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

Verilog 的數字格式(2) 不規定長度的數字(unsized numbers) ’<base format><number> <base format>:d10進位,h16進位, o 8進位,b 2進位 位元數之大小由模擬器或硬體機定值來決定 Example: b=’ha5; b=a5(32位元之16進位數)

Verilog的運算子

Chapter 5 Verilog硬體描述語言

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

(2) 、接線(net) 接線(net)表示在硬體元件的接點連接線 關鍵字可以分為下列六種 wire: 內定為一個位元的值,機定值為高阻抗 wand: Wired-AND型接線 waor: Wired-OR型接線 tri trior trireg

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

(4) 、向量(Vectors) 向量(Vectors)表示多位元的元件,wire及reg都可定義為向量格式 Examples: wire A[7:0]; //宣告有一8位元的BUS reg [0:15] out; //宣告有一16位元寬度的向量暫存器變數out

(5) 、整數(Integer) 整數之關鍵字為integer,最少要32位元,integer宣告可帶正負號 Example: integer count; initial count = 0;

(6) 、實數(Real) 實數之關鍵字為real,可用十進制或帶有指數表示 Example: real w, x; initial begin w = 5.2; x = 25e6;

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

(8) 、陣列(Arrays) Verilog所提供陣列的儲存內容可以是整數、暫存資料、時間及向量,但不能為實數而且只適用於一維陣列 表示格式為<array_name>[<subscript>] integer A[0:15];16個變數A的陣列 reg [3:0] B[0:15];16個變數B的陣列,每一個B的位元寬度為4位元

(9) 、記憶體(Memories) 記憶體是一個暫存器的陣列,而陣列中的每一個物件都視為一個word,每一個word可以是1個位元或是多個位元所組成 reg [15:0] memory1 [0:1023]/*宣告記憶體memory1為16位元1K word的大小*/ reg memory2 [0:1023]/*宣告記憶體memory2為1位元1K word的大小*/

(10) 、參數(Parameters) 主要作用在設定一個固定常數,此常數可在每一次編譯時更改其值 parameter LGG=100;//宣告一常數LGG等於100

(11) 、字串(Strings) 字串的作用在指定給暫存器,若長度大於reg的長度,則其左邊的位元會被刪掉,若長度小於reg的長度,則其左邊的位元會以零補之 Reg [8*16:1] string_value; initial string_value=“good morning”

Chapter 5 Verilog硬體描述語言

事件基礎時間控制 (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

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

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

Chapter 5 Verilog硬體描述語言

Verilog的輸入輸出埠描述 輸入埠(input) 輸出埠(output) 雙向埠(inout) Examples module Addr(F1, F2, D, SUM, C0) input [3:0] F1, F2; output [3:0] SUM; output C0; input D;

Question & Answer