推 Seaka: 原來數位邏輯也要上機? 0 0" 140.115.235.65 12/04

30
推 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

description

推 Seaka: 原來數位邏輯也要上機? 0 0" 140.115.235.65 12/04 推 tlyeh: 工程師 什麼都要上ㄚ ( 不要亂想 ) 十八般 武藝 都要使得出來ㄚ 沒看到 我電工木工 水泥工金工化工生醫 ? 平常都得用出來ㄚ 140.115.7.94 12/05 → tlyeh: 學會了 就用得出來 只是知道卻沒學會 140.115.7.94 12/05 - PowerPoint PPT Presentation

Transcript of 推 Seaka: 原來數位邏輯也要上機? 0 0" 140.115.235.65 12/04

Page 1: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

推 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

Page 2: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

數 位 邏 輯 軟 體 設 計 實 驗

FPGA (Filed Programmable Gate Array)

CPLD (Complex Programmable Logic Device)

Page 3: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

差異 : CPLD 適合用來實現各種

運算和組合邏輯 時間特性預估容易 有固定內部連線電路的邏

輯功能來編程 編程採用 E2PROM 或 Flas

h 技術,使用時外部不需要另外的記憶儲存元件

Verilog

FPGA 適用於實現循序邏輯 分段式佈線結構使得其時間

延遲的預測變的困難 具有更大的靈活性透過改變

內部電路佈線來編程 可編程邏輯閘數大 許多編程採用 SRAM 技術,

所以使用時外部需要搭配記憶儲存元件存放編程訊息使用方法較複雜

VHDL

Page 4: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

使用軟體 :

Mdelsim

ISE ( Xilinx Project Navigator)

Page 5: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Verilog HDL 簡介

Page 6: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Outline Introduction 四種描述層次 基本單位的描述

module port 常用的 Logic Gates

其他的語法協定

Page 7: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Introduction Verilog HDL 是一種硬體描述語言,用來描

述電路功能或是架構。 只要有 C 語言的相關經驗即可容易上手。 一般的邏輯合成工具普遍都有支援 Verilog H

DL 。 大部分的製造商皆有提供 Verilog HDL 的函

數庫,因此用 Verilog HDL 設計晶片在廠商方面有較多的選擇。

Page 8: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

四種描述層次1. Behavioral level :

只考慮模組中的功能和函數,不必考慮硬體方面的詳細電路,如同是在寫 C 語言一樣。

2. Dataflow level :說明資料如何在暫存器中儲存和傳送,和資料處理的方式。

3. Gate level :模組是由 Logic gates 所構成的,使用 Logic gates 來設計電路。

4. Switch level :最低層次,設計者需知道電晶體的元件特性。

Page 9: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Gate level :

Page 10: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Behavioral

module Beh_AND ( in1 , in2 , Out)

input in1 , in2 ;

output Out ;

reg Out ;

always @ ( in1 or in2 )

begin Out = in1 & in2

end

endmodule

Page 11: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Data Flow

module DF_AND ( in1 , in2 , Out)

input in1, in2 ;

output Out ;

wrie Out ;

assign Out = in1 & in2 ;

endmodule

Page 12: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

四種準位數值

0 1 X : 不確定 Z : 高阻抗

Page 13: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

常用敘述 assign

assign

驅動某個值到 wire , wand , wor ,tri

用於資料處理模型 Data Flow Model wire a,b,c; // 宣告三個接縣型態的變數

assign a= b & c; //a = b 和 c 作 and 運算

Page 14: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

常用敘述 always

可隨時監督外界輸出入 port ,訊號有變化時即告訴模組內部配合相對應的工作

always @(a or b)

begin

f=a&b&c;

end

Page 15: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

always 例子 :

always @( posedge clock)

begin

end

// posedge 正緣觸發// nogedge 負緣觸發

Page 16: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

wire 敘述

接線是連接硬體元件之連接線 接線必須被驅動才能改變它內函值 內定為一個位元值 z

Page 17: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

reg

暫存器 功能與變數很像 , 可以給定一個數值 ,主要功能在保持

住電路中某個值 , 不必像 (wire) 要被驅動才能改變它的內函值

內定為一個位元值 x

Page 18: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

選用 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

Page 19: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

二元逐位運算子

~ NOT & AND | OR ^ XOR ~^ XNOR

Page 20: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

範例

Assign a= ~ b ; // not // 若 b= 4’b0010 // 則 a= 4’b1101

Assign a= b & c; // and // 若 b= 4’b0011 // 若 c= 4’b1010 // 則 a= 4’b0010

Page 21: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

範例

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

Page 22: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

單元運算子

& = AND , ~& = NAND , | = OR , ~| = NOR ^ = XOR ,~^ = NXOR

assign a=&b ;

assign a=|b;

Page 23: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

邏輯運算子

!= NOT , &&=AND , || = OR 三種!= NOT條件 : 不成立 , 經過 ! 後 : 成立對於一特定一比輸入資料任何一為元 , 只要一位元為 1運算結果為 0

或只要一位元為 0運算結果為 1

a =!a

0=1 , 1=0 , 00=1 , 01 = 0 , 10=0 , 11=0 , 00=1

Page 24: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

&&=AND

對於二個

Page 25: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

基本單位 - 模組( module) Module 是以 input, output, bi-direction ports

和外部溝通。 一個已經設計好的 Module 可以放在另一個

Module之中使用。 Ex.

module fulladd4(SUM,C_OUT,A,B,C_IN);…endmodule// 有 port 的 modulemodule Top;…endmodule/* 沒有任何的 port 的 modole ,常用於模擬之用*/

模組的名字 ( 自行命名 )

Input、 Output

Page 26: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Level 的概念 Top Level Module 可以包含許多的其他 Modules 。

Modules之中可能還有其他的 Modules 。

Top Level Module X

Module T1

Module T2

Module T3

A

B

A

B

A

B

Page 27: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

範例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

Page 28: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

基本單位 -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 變數

Page 29: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

Ports 的連接規定 Port 可以浮接,主要是用來除錯。

Ex.fulladd4 fa0(SUM, ,A,B,C_IN); 輸出輸入的連接規定 :

Module T1

常見的 net 型態 :ex. wire c;

Module X

Page 30: 推  Seaka: 原來數位邏輯也要上機? 0 0"                       140.115.235.65 12/04

模擬用 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);

endmodulefulladd4 的輸出不可以接到 reg 型態的 sum

module 的別名,可以隨便取,但是不可相同Call

fulladd4

module fulladd4(s,co,a,b,cin);……endmodule