Chapter 5 Verilog 硬體描述語言

Slides:



Advertisements
Similar presentations
旅 糾 紛 遊 與緊急事件處理 11 Chapter 旅遊費用.
Advertisements

教育概論 幼一甲 第四小組 1.林瑞敏 2.許曉文 20.張舒婷 21.陳香如.
Introduction 基本概念 授課老師:蕭志明
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
Word高级应用——制作毕业论文 Word高级应用——制作毕业论文 6..
TQC+ 物件導向程式認證-JAVA.
第4章 VHDL设计初步.
Chapter 5 Sequential Logic Circuit
數位邏輯設計與實習 ch04 組合邏輯電路設計.
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
Chapter 4 流程控制.
HSPICE 基本操作.
教育部補助 「大專校院社團帶動中小學社團發展」
企業講座 組長: 張仁杰 組員: 指導老師:洪伯毅 楊巧歆 楊明芬 陳璿安
口腔需求品類 -以家樂福為例 指導老師:莊勝雄 老師 組員:497D0033 邱郁閔 497D0086 陳育嘉 497D0092 黃靜宜
第三章 组合逻辑电路 第一节 组合电路的分析和设计 第二节 组合逻辑电路中的竞争与冒险 第三节 超高速集成电路硬件描述语言VHDL
水煮FPGA 传统FPGA设计流程简介.
一、實習目的 1、瞭解各種閂鎖器之特性。 2、瞭解各種正反器之特性。 3、瞭解各種正反器之邏輯功能。 4、瞭解正反器之應用。
第10章 Verilog操作符 学习内容: 熟悉Verilog语言的操作符.
VHDL數位電路實習與專題設計 文魁資訊-UE301
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 30, 2017 ZDMC.
第5章 程序结构.
Chapter 5 Verilog硬體描述語言
Chapter 5 Verilog 硬體描述語言
邏輯設計.
Ch01-2 Verilog語法 資料流(DataFlow)設計 行為(Behavior)設計
第17章 Verilog中的高级结构 学习内容: 任务和函数的定义和调用 怎样使用命名块 怎样禁止命名块和任务 有限状态机(FSM)及建模.
EDA技术 廖义奎.
VHDL 硬體描述語言 數位電路設計實務 第四章 VHDL 的語言結構.
Transact-SQL 語言設計教學.
EDA原理及应用 何宾
第四阶段实验 ISP器件的设计与应用 一、实验目的 二、实验内容与要求 三、ISP器件的开发流程 四、EDA Pro2K实验系统介绍
欢迎参加VHDL培训 VHDL培训教程 浙江大学电子信息技术研究所 电子设计自动化(EDA)培训中心
数字系统设计复习 Digital System Design Summary
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
Danny Mok Altera HK FAE AHDL培训教材 Danny Mok Altera HK FAE 2018/12/9 P.1.
Verilog硬件描述语言基础.
演算法與資料結構 製作單位: 高雄市立高雄中學.
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
Programmable Logic Architecture Verilog HDL FPGA Design
第二章 電腦硬體知識 2-1 電腦的組成與架構 2-2 處理器 2-3 記憶體 2-4 輸入與輸出裝置 2-5 電腦的操作與保養.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
语法进阶.
时序电路设计 刘鹏 浙江大学信息与电子工程系 Apr. 24, 2011 EE141
数字集成电路设计入门 --从HDL到版图 于敦山 北大微电子学系.
精简指令集(RISC)CPU的构造原理和设计方法
暴力、草莽、土野、情色、權慾 —華西街的成人童話
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 29, 2016 ZDMC.
第六章 VHDL设计共享.
第五章 VHDL主要描述语句.
第七章 正反器 台北市私立景文高級中學 資電學程 7-1 RS型正反器 7-2 D型正反器 7-3 JK型正反器 7-4 T型正反器 吳永義
第一次上机安排 第六周 第七周 周一晚(提高1、2,通信001~012) 周二上(通信014~085) 周四上(通信086~154)
刑事訴訟法 不受理.
程式結構&語法.
第14章 对验证的支持 学习内容 理解Verilog文本输出 理解不同的读取仿真时间的系统函数 理解 Verilog文件I/O功能.
计算机学院 数字逻辑实验的要求.
第二章 電腦硬體知識 Chapter 2-電腦硬體知識.
计算机EDA设计 教 程 北航计算机学院 艾明晶.
设计示例一 用门级结构描述D触发器:.
數位邏輯設計 VHDL.
K60入门课程 06 首都师范大学物理系 靳熙芃.
第九章 循序邏輯應用 9-1 計數器 9-2 跑馬燈 9-3 紅綠燈 台北市私立景文高級中學 資電學程 吳永義 數位邏輯.
Ch07. 函式.
FPGA组合逻辑 王安然.
Verilog HDL 基本语法 STEP 2016/12/3.
身分證.
按键处理部分 王安然.
Programmable Logic System Design
C#快速導讀 流程控制.
第七章 基本逻辑电路设计.
Presentation transcript:

Chapter 5 Verilog 硬體描述語言

Chapter 5 Verilog硬體描述語言

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

模組內之四種層次描述電路 開關層次(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;

Chapter 5 Verilog硬體描述語言

Always Always是屬於並行迴圈,其事件一旦被觸發,其區塊中的敘述將會被執行,觸發一次執行一次行程無窮迴圈 always@(事件1 or 事件2 or … or 事件n) begin <敘述區> end

「 Begin … end 」 主要是將不同敘述同時集中,做法與C語言的“{”與“}”一樣,當敘述址為一行時,則Begin … end可以拿掉 begin:<方塊名稱> <資料型態宣告>; . end 各種敘述

「 If 」「 else if 」「 else 」 If 跟 else if 為條件判斷式,只要達成If 或是 else if 的判斷條件,則執行內部的敘述區塊,否則執行else內部的敘述區塊 If (判斷條件1) begin <敘述區塊> end else if (判斷條件2) else if (判斷條件3) . else

「 If 」「 else if 」「 else 」 cont’ 通常if else if else會出現在Always迴圈底下,因為Always屬於並行迴圈,若再搭配條件判斷便可以進行串列(下面程式藍色部分) 與並列(下面程式綠色部分)處理。 Always@(判斷條件1 or 判斷條件2 or … or 判斷條件n) begin if (判斷條件1) <敘述區塊> end else if (判斷條件2) else Always@(判斷條件1 or 判斷條件2 or … or 判斷條件n) begin if (判斷條件1) <敘述區塊> end if (判斷條件2) else 二個if會同時判斷

EX. Always @(posedge CLK or negedge CLR) //如果CLK在正緣觸發或是CLR在負緣觸發時便執行 //下面的敘述 begin //如同C語法的{ if (!CLR) //如果觸發的是CLR且為0則執行以下敘述 q=1’b0; //如果觸發的是CLR且為0則q清除為0,一行故if敘述式可加可不加begin end else //否則,如果不是CLR的觸發(也就是CLK時) begin //因為else裡面敘述事不只一個,故要加begin end q=d; //若不是CLR則q輸出d(輸入端)的資料 cont = cont +1; end //因為else裡面敘述事不只一個,故要加begin end end //如同C語法的}

「 Case … endcase 」 Case 類似if else的寫法,依照case後面的條件狀況判斷式,來判斷要進入哪一個狀況執行裡面的敘述式,否則執行default(類似else)裡面的敘述式。 case (條件狀況判斷式) 狀況1: begin <敘述式1> end 狀況2: <敘述式2> . default: <敘述式n> endcase

EX. Case (s) //若S的狀態改變時便進入case敘述式 2’b00: //若S的狀態式2bit 00的話便進入以下敘述式 begin //敘述式開始 y = i[0]; cont = cont+1; end //敘述式結束 2’b01: //若S的狀態式2bit 01的話便進入以下敘述式 begin //敘述式開始 y = i[1]; 2’b10: //若S的狀態式2bit 10的話便進入以下敘述式 y = i[3]; end //敘述式結束 default: //否則進入以下敘述式 y = i[4]; endcase //本case敘述式結束

「 While 」 在While語法中,後面所接的條件判斷式如果為“真”則一直執行While內部的敘述式,直到該判斷式為“假”才停止執行。 begin <敘述式> end

EX. Parameter i=10; //設定 i = 10 while (i>0) //如果i >0的話就執行內部敘述式,一直到i <0結束 begin //敘述式開始 $display(“i=%d”,i); //把i的值用十進制的方式顯示出來 i= i-1; //目的是要把i減到停止執行while迴圈(即i<0) end //敘述式結束

Question & Answer