義守大學電機工程學系 陳慶瀚 pierre@mail.isu.edu.tw 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚 pierre@mail.isu.edu.tw.

Slides:



Advertisements
Similar presentations
第一讲:导论 The Introduction  哲学与中国哲学  哲学与哲学史  中国哲学史的历史.
Advertisements

第一章 十六世紀中葉以前的臺灣與原住民 第一節 考古發掘與史前文化.
量化vs質性研究分析 量化vs質性研究分析 報告人:王秀民.
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
唐宋傳奇、筆記小品和史書、論著中的寓言 中碩二 吳佳樺.
兒童期 7 青春期 兩性圓舞曲 乘客:七年級同學 司機:張立杰老師.
星星知我心 談古話今….. ……..觀星望斗 主講人: 陽光青春美少男.
反垃圾掩埋場相關報告 組長:文煊 組員:鄭侃文 李浩暐 胡育睿 李瑞耘 朱祐賢 林承宇.
"性"不"性"由你 性別平等之探討 北屯國小 張文陵.
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
劳动统计专业年报培训 社会科 洪惠娟 2009年11月.
組員: 洪暐翔、 賴峻毅 侯家豪、 賴琦穎 指導老師: 王惠鈴 老師
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
第4章 VHDL设计初步.
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
公司法(六) 股份有限公司 1.
实践 课题 周围环境对当代大学生成长的影响 指导老师:王永章 小组成员:陈荣、刘若楠、张红艳、吕雪丹、樊金芳、李惠芬、黄婧
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
第三章 组合逻辑电路 第一节 组合电路的分析和设计 第二节 组合逻辑电路中的竞争与冒险 第三节 超高速集成电路硬件描述语言VHDL
Chapter 5 迴圈.
台中市不動產經紀人職業工會 不動產經紀營業員 複訓班
Chapter 1 複習.
VHDL數位電路實習與專題設計 文魁資訊-UE301
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 30, 2017 ZDMC.
C++Primer 3rd edition 中文版 Chap 5
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
VHDL數位電路實習與專題設計 文魁資訊-UE301
第一次随堂作业(10.16) 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
VHDL 硬體描述語言 數位電路設計實務 第四章 VHDL 的語言結構.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
VHDL 硬體描述語言 數位電路設計實務 第六章 函數副程序以及套件程式庫.
EDA原理及应用 何宾
EDA原理及应用 何宾
欢迎参加VHDL培训 VHDL培训教程 浙江大学电子信息技术研究所 电子设计自动化(EDA)培训中心
義守大學電機工程學系 陳慶瀚 第2章 VHDL基本語法 義守大學電機工程學系 陳慶瀚
使用VHDL設計—向上&向下計數器 通訊一甲 B 楊穎穆.
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
使用VHDL設計--Moore Machine
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
第12章 shell编程基础 本章主要介绍shell编程的基础知识。shell脚本的执行类似于Linux下的任何其他命令,脚本可以包含复杂的逻辑,也可以包含一系列Linux命令行指令。在一个shell程序内可以运行其他shell脚本。通过本章的学习,读者可以学到如何使用bash(最流行的Linux.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
第五章 VHDL设计基础 本章重点: 本章难点: VHDL程序结构 VHDL的基本数据类型 VHDL的基本描述语句 基本组合逻辑电路设计
義守大學電機工程學系 陳慶瀚 第3章 VHDL Concurrent語法 義守大學電機工程學系 陳慶瀚
第五章 VHDL主要描述语句.
使用VHDL設計—4位元ALU電路 通訊一甲 B 楊穎穆.
江西财经大学信息管理学院 《数据库应用》课程组2007
第一次上机安排 第六周 第七周 周一晚(提高1、2,通信001~012) 周二上(通信014~085) 周四上(通信086~154)
第七單元 正反器 (教科書第四章) 數位系統實驗
软件工程 第四章 软件设计 软件过程设计技术与工具.
软件测试技术-白盒测试 张志强 2006.
數位邏輯設計 VHDL.
使用VHDL設計-8x1多工器 通訊一甲 B 楊穎穆.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第7章 VHDL设计应用实例 7.1 8位加法器的设计 7.2 分频电路 7.3 数字秒表的设计.
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
Programmable Logic System Design
顺序查找与二分查找复习.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
C语言基本语句 判断循环.
第七章 基本逻辑电路设计.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

義守大學電機工程學系 陳慶瀚 pierre@mail.isu.edu.tw 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚 pierre@mail.isu.edu.tw

1. 流程控制(Flow Control)

1.1 Process Statements

1.2 Process 語法 Example: [ process_label:] PROCESS( sensitivity_list ) { process_declaration } BEGIN { sequential_statements } END PROCESS [ process_label ]; comb:PROCESS(a, b, c) VARIABLE temp:STD_LOGIC; BEGIN temp:=NOT(a AND b); IF(c = ‘1’) THEN y <= ‘0’; ENDIF; END PROCESS comb; Example:

1.3 Process 語法說明 語法說明 process_label:流程的名稱標記,可有可無。 sensitivity_list:使程式進入流程的觸發信號。一旦觸發信號改變時,即執行一次這個流程,否則流程不會被執行。 process_declaration:宣告流程內部使用的信號或變數。 sequential_statement;順序式的陳述。

1.4 Sequential Statement IF-THEN-ELSE CASE LOOP ASSERT WAIT

1.5 IF-THEN-ELSE Example 2-1 Mux PROCESS(sel, i0,i1) BEGIN IF condition THEN sequential_statements { ELSIF condition THEN sequential_conditions } [ ELSE sequential_statements ] END IF; PROCESS(sel, i0,i1) BEGIN IF(sel=’0’) THEN y <= i0; ELSE y <= i1; END IF; END PROCESS; Example 2-1 Mux

1.6 IF-THEN-ELSE範例 Example 1 Example 2 PROCESS(a, b) BEGIN IF(a = ‘0’)THEN y <= ‘0’; ELSE y <= ‘b’; END IF; END PROCESS; Example 1 PROCESS(i0, i1, a, b) BEGIN IF(a = ‘0’ AND b = ‘1’)THEN y <= i0; ELSE IF (a=’1’ AND b=’0’)THEN y <=i1; END IF; END PROCESSS; Example 2

1.7 Case-When 範例: 語法: CASE expression IS WHEN choice { sequential_statements } {sequential_statements} WHEN OTHERS END CASE; CASE sel IS WHEN “00” Z <= I0; WHEN “01” Z <= I1; WHEN “10” Z <= I2; WHEN “11” Z <= I3; WHEN OTHERS Z <= ‘X’; END CASE;

2. 迴圈(Loop)

2.1、 LOOP Iteration_scheme : WHILE LOOP FOR LOOP WHEN (condition) LOOP FOR i IN range LOOP 語法: [loop_label:] [iteration_scheme] LOOP sequential_statements END LOOP [loop_label]; Type : WHILE LOOP FOR LOOP  

2.2 Loop Example Example 1: Example 2: FOR i IN 10 DOWNTO 1 LOOP i_squared(i):= i * i; END LOOP; Example 2: WHILE ( day = weekday ) LOOP day := get_next_day(day); END LOOP;

2.3 NEXT and EXIT NEXT 相當於 C 語言中的 continue, 跳至迴圈下一個cycle繼續執行 FOR i IN 0 TO 255 LOOP IF (done (i) = TRUE) THEN NEXT; ELSE done (i):= TRUE; END IF; q <= a(i) AND b(i); END LOOP;

2.4 NEXT and EXIT EXIT 相當於 C 語言中的 break,作用在於中斷迴圈 PROCESS (a,b) BEGIN first_loop:FOR i IN 0 TO 100 LOOP second_loop:FOR j IN 1 TO 10 LOOP ......... EXIT second_loop;--exit the second loop only ........... EXIT first_loop;--exit the first loop only END LOOP; y<=a; y<=b; END PROCESS

3. Wait

3.1 Wait語法 WAIT ON signals changes WAIT UNTIL an expression is true 功能: 等待(1)信號改變(2)條件判斷為真(3)一段時間 目的: 描述暫存器 (latch,flip-flop) WAIT ON signals changes WAIT UNTIL an expression is true WAIT FOR a specific amount of time

3.2 Wait Example Example 1: Positive edge-trigger D flip-flop PROCCESS BEGIN WAIT UNTIL clock =‘1’ AND clock’EVENT q <= d; END PROCCESS Example 2 : Asynchronous reset D flip-flop PROCCESS BEGIN IF (reset = ‘1’) THEN q <= 0; ELSE IF clock’EVENT AND clock=‘1’ THEN q <= d; END IF; WAIT ON reset, clock; END PROCCESS

3.3 Wait Example Example 3 : Synchronous reset D flip-flop PROCCESS BEGIN WAIT UNTIL clock=‘1’ AND clock’EVENT IF (reset = ‘1’) THEN q <= 0; ELSE q <= d; END IF; END PROCCESS

3.4 Multiple WAIT conditions WAIT ON nmi,interrupt UNTIL ((nmi = TRUE) or (interrupt = TRUE)) FOR 5 usec; 等待 nmi 或 interrupt 的信號變化, 且其中之一的值為 TRUE 或者過 5 usec 再後繼續執行

3.5 Multiple WAIT conditions WAIT ON nmi,interrupt UNTIL ((nmi = TRUE) or (interrupt = TRUE)) FOR 5 usec; 等待 nmi 或 interrupt 的信號變化, 且其中之一的值為 TRUE 或者過 5 usec 再後繼續執行

3.6 Sensitivity list V.S. WAIT 當PROCESS中含有WAIT等待的陳述時, 就不能再有sensitivity list觸發信號,否則 會造成互相等待的情形。

: Exercise