Download presentation
Presentation is loading. Please wait.
1
推 Seaka: 原來數位邏輯也要上機? 0 0" 140.115.235.65 12/04 推 tlyeh: 工程師 什麼都要上ㄚ ( 不要亂想 ) 十八般 武藝 都要使得出來ㄚ 沒看到 我電工木工 水泥工金工化工生醫 ? 平常都得用出來ㄚ 140.115.7.94 12/05 → tlyeh: 學會了 就用得出來 只是知道卻沒學會 140.115.7.94 12/05 → tlyeh: 就變成 唸書無用 的情形了 140.115.7.94 12/05 → lambdadriver: 真... 真不愧是老師... 140.115.214.238 12/05 → lambdadriver: 那我們上機是要幹嘛... 打電動 !? 140.115.214.238 12/05 推 xiiuili: 老師真強......@@" 140.115.214.56 12/05 → xiiuili: 根據助教的說法... 140.115.214.56 12/05 → xiiuili: 上機 = 模擬電路 = 以前的實驗電腦化 @@" 140.115.214.56 12/05 推 onepieceQ: 是喔 !!! 140.115.214.246 12/05 推 ant3690: 好...抽像 140.115.65.30 12/05 推 tlyeh: 昨天上課到後來 怎麼變成是鬧場的樣子 140.115.7.94 12/06 → tlyeh: 助教 故做 輕鬆狀 同學仍然要有節制分寸 140.115.7.94 12/06 → tlyeh: 弄到 妨礙上課的情形 就過分了 !! 要記住 140.115.7.94 12/06 → tlyeh: 到外面做事的時候 也一體適用 否則會被人 ! 140.115.7.94 12/06 作者 morphous (SCP 動起來吧 ~~~) Wed Dec 6 13:13:32 2006 看板 ME-1A 標題 數位邏輯 12.05 實驗課投影片 http://140.115.67.230/ncume_dl_verilog_intro.ppt 推 jackchang:P4 使用軟體是 ModelSim 220.134.24.151 12/06 → jackchang:p8~p10 的程式範例在 modeule 後面需加分號 220.134.24.151 12/06 → jackchang:p14 中 always 的用法 nogedge 改成 negedge 220.134.24.151 12/06 推 morphous: 嘖嘖嘖 學長昨天沒來上課喔.... 140.115.67.228 12/06 推 morphous: 那是大魔王故意設計的 bug 啦... 140.115.67.228 12/06
2
數 位 邏 輯 軟 體 設 計 實 驗 數 位 邏 輯 軟 體 設 計 實 驗 FPGA (Filed Programmable Gate Array) CPLD (Complex Programmable Logic Device)
3
差異 : CPLD 適合用來實現各種 運算和組合邏輯 時間特性預估容易 有固定內部連線電路的邏 輯功能來編程 編程採用 E2PROM 或 Flash 技術,使用時外部不需要 另外的記憶儲存元件 Verilog FPGA 適用於實現循序邏輯 分段式佈線結構使得其時間 延遲的預測變的困難 具有更大的靈活性透過改變 內部電路佈線來編程 可編程邏輯閘數大 許多編程採用 SRAM 技術, 所以使用時外部需要搭配記 憶儲存元件存放編程訊息使 用方法較複雜 VHDL
4
使用軟體 : Mdelsim ISE ( Xilinx Project Navigator)
5
Verilog HDL 簡介
6
Outline Introduction 四種描述層次 基本單位的描述 module port 常用的 Logic Gates 其他的語法協定
7
Introduction Verilog HDL 是一種硬體描述語言,用來描 述電路功能或是架構。 只要有 C 語言的相關經驗即可容易上手。 一般的邏輯合成工具普遍都有支援 Verilog HDL 。 大部分的製造商皆有提供 Verilog HDL 的函 數庫,因此用 Verilog HDL 設計晶片在廠商 方面有較多的選擇。
8
四種描述層次 1.Behavioral level : 只考慮模組中的功能和函數,不必考慮硬體方面的詳 細電路,如同是在寫 C 語言一樣。 2.Dataflow level : 說明資料如何在暫存器中儲存和傳送,和資料處理的 方式。 3.Gate level : 模組是由 Logic gates 所構成的,使用 Logic gates 來設計 電路。 4.Switch level : 最低層次,設計者需知道電晶體的元件特性。
9
Gate level :
10
Behavioral module Beh_AND ( in1, in2, Out) input in1, in2 ; output Out ; reg Out ; always @ ( in1 or in2 ) begin Out = in1 & in2 end endmodule
11
Data Flow module DF_AND ( in1, in2, Out) input in1, in2 ; output Out ; wrie Out ; assign Out = in1 & in2 ; endmodule
12
四種準位數值 0 1 X : 不確定 Z : 高阻抗
13
常用敘述 assign assign 驅動某個值到 wire, wand, wor,tri 用於資料處理模型 Data Flow Model wire a,b,c; // 宣告三個接縣型態的變數 assign a= b & c; //a = b 和 c 作 and 運算
14
常用敘述 always 可隨時監督外界輸出入 port, 訊號有變化時即 告訴模組內部配合相對應的工作 always @(a or b) begin f=a&b&c; end
15
always 例子 : always @( posedge clock) begin end // posedge 正緣觸發 // nogedge 負緣觸發
16
wire 敘述 接線是連接硬體元件之連接線 接線必須被驅動才能改變它內函值 內定為一個位元值 z
17
reg 暫存器 功能與變數很像, 可以給定一個數值, 主要功能在保持住 電路中某個值, 不必像 (wire) 要被驅動才能改變它的內函 值 內定為一個位元值 x
18
選用 wire 或 reg 時機 wire 必須配合 assign 來使用, 且不能出現在 always 區塊描述裡 Wire a,b,c; assign a &c; reg 必須放在 always 區塊描述裡 input [3:0] a, b; output [3:0] c; reg [3:0] c; always @(a or b) Begin c=a+b; end
19
二元逐位運算子 ~ NOT & AND | OR ^ XOR ~^ XNOR
20
範例 Assign a= ~ b ; // not // 若 b= 4’b0010 // 則 a= 4’b1101 Assign a= b & c; // and // 若 b= 4’b0011 // 若 c= 4’b1010 // 則 a= 4’b0010
21
範例 Assign a= b|c ; // or // 若 b= 4’b0011 // 若 c= 4’b1010 // 則 a= 4’b1011 Assign a= b ^ c; // and // 若 b= 4’b0011 // 若 b= 4’b1010 // 則 a= 4’b1001
22
單元運算子 & = AND, ~& = NAND, | = OR, ~| = NOR ^ = XOR,~^ = NXOR assign a=&b ; assign a=|b;
23
邏輯運算子 != NOT, &&=AND, || = OR 三種 != NOT 條件 : 不成立, 經過 ! 後 : 成立 對於一特定一比輸入資料任何一為元, 只要一位元為 1 運算結果為 0 或只要一位元為 0 運算結果為 1 a =!a 0=1, 1=0, 00=1, 01 = 0, 10=0, 11=0, 00=1
24
&&=AND 對於二個
25
基本單位 - 模組( module ) Module 是以 input, output, bi-direction ports 和 外部溝通 。 一個已經設計好的 Module 可以放在另一個 Module 之中使用。 Ex. module fulladd4(SUM,C_OUT,A,B,C_IN); … endmodule // 有 port 的 module module Top; … endmodule /* 沒有任何的 port 的 modole ,常用於模擬之用 */ 模組的名字 ( 自行命名 ) Input 、 Output
26
Level 的概念 Top Level Module 可以 包含許多的其他 Modules 。 Modules 之中可能還有 其他的 Modules 。 Top Level Module X Module T1 Module T2 Module T3 A B A B A B
27
範例 module X(a,b,c,d,e,f); … T1 jack1(y1,y2,x); T2 jack2(k1,k2,q); T3 jack3(z1,z2,p); … endmodule module T1(u1,u2,u3); … endmodule module T2(v1,v2,v3); … endmodule … Top Level Module X Module T1 Module T2 Module T3 A B A B A B
28
基本單位 -port 與 module 外部的信號溝通。 分為輸出 (output) 、輸入 (input) 、雙向 (inout) 如果你只有宣告 input,output,inout ,則將被視為是 wire 的型態。 如果想要維持信號到下一個 clock ,則需要宣告成 reg 的型態 ( 序 向邏輯電路會用到 ) Ex. output q; reg q; // 這樣才可以儲存資料 向量 : wire 和 reg 皆可宣告成向量 Ex. wire [7:0] a; //8-bit a 變數 reg [40:0] address; //41-bit address 變數
29
Ports 的連接規定 Port 可以浮接,主要是用來除錯。 Ex.fulladd4 fa0(SUM,,A,B,C_IN); 輸出輸入的連接規定 : Module T1 常見的 net 型態 : ex. wire c; Module X
30
模擬用 Error ports module Top; reg [3:0] A,B; reg C_IN; reg [3:0] SUM; wire C_OUT; fulladd4 fa0(SUM,C_OUT,A,B,C_IN); … endmodule fulladd4 的輸出不可以接到 reg 型態的 sum module 的別名,可以隨便取,但是不可相同 Call fulladd4 module fulladd4(s,co,a,b,cin); … endmodule
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.