1. Trang chủ
  2. » Giáo án - Bài giảng

Thiết kế hệ thống số

180 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Hệ Thống Số
Trường học Hutech University
Chuyên ngành Thiết Kế Hệ Thống Số
Thể loại thesis
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 180
Dung lượng 4,77 MB

Nội dung

Trang 98 - OUTnào trong entity.. architecture ngõ vào và tín nhau entityVHDL.. - component entity entity - architecture - component architecture mponent có 5.2 CÁC KHAI BÁO TRONG VHDL.

Trang 2

5

Trang 3

I III

1

1.1 QUAN 1

1.2 QUÁ TRÌNH 2

1.3 NGÔN MÔ 4

1.4 CÔNG ALTERA, 5

1.5 RÚT HÀM PHÁP QUINE-MC CLUSKEY 7

TÓM 10

CÂU ÔN 10

11

2.1 QUAN 11

2.2 ROM (READ-ONLY MEMORY) 12

2.3 PLD (PROGRAMMABLE LOGIC DEVICE) 19

(Combinational PLD) 19

27

TÓM 30

I 31

3.1 MÁY THÁI 31

3.2 PHÂN TÍCH MÁY THÁI 35

3.3 MÁY THÁI 40

TÓM 58

CÂU ÔN 58

BÀI 4: ABEL 65

4.1 TRÚC TRÌNH ABEL 65

4.2 CÁC PHÁT (STATEMENTS) 66

4.3 CÁC KHAI BÁO (DECLARATIONS) 72

4.4 CÁC KHAI BÁO KHÁC 73

4.5 CÁC TOÁN (OPERATORS) 75

4.6 CÁC (PREFIX), (SUFFIX) 76

4.7 GHI CHÚ (COMMENTS) 77

4.8 CÁC VÍ 77

TÓM 88

CÂU ÔN 88

BÀI 5: VHDL 89

5.1 TRÚC NGÔN VHDL 89

5.2 CÁC KHAI BÁO TRONG VHDL 99

Trang 4

5.3 CÁC VHDL 103

5.4 VÍ CÁC M VÀ 130

TÓM 138

CÂU ÔN 138

BÀI 6: VERILOG 139

6.1 QUAN: 139

6.2 CÁC TRONG VERILOG 140

6.3 CÁC TRONG VERILOG 141

6.4 CÁC 142

6.5 TOÁN 146

6.6 TOÁN 151

6.7 MODULES 152

6.8 KHUÔN M HÀNH VI (BEHAVIORAL) 155

6.9 ALWAYS VÀ INITIAL 160

6.10 HÀM 162

6.11 LINH 165

6.12 VÍ 166

TÓM 173

CÂU ÔN 173

TÀI THAM 174

Trang 8

1.2 QUÁ TRÌNH THI T K H TH NG S

Hình 1.1: Quá Tr

t

Trang 9

BÀI 1: 3 N

Hình 1.2 trình

hay danh

Trang 10

: Programmable Gate Array (FPGA), Complex Programmable Logic Device (CPLD), vi

Field-

1.3 NGÔN NG MÔ T PH N C NG

s - Hardware Description Languages)

u, ê

-

- CDL (Computer Design Language

- CONLAN (Consensus Language

này cho phép

bên ngoài

- IDL (Interative Design Language

bao

Trang 12

- Cypress Semiconductor Warp

War

pASIC80

- Mentor Graphic là hãng ph

Trang 17

PLD

PLA PAL

PPAL EPPAL EEPPAL

LCA EPLD PEEL

(Pro

elec

erasable Logic)

GAL (generic array logic)

Trang 18

ROM= Read Only Memory

EP = Erasable and Programmable

PLD = Programmable Logic Device

2.2 ROM (READ-ONLY MEMORY)

Trang 19

BÀI 2: 13

m x n (bit)

m ngõ vào, n ngõ m

Trang 21

BÀI 2: 15

Hình 2.6

Trang 22

2.3: ROM 128x1

Hình 2.7

Hình 2.8

Trang 23

BÀI 2: 17

2.3: ROM 128x1

Hình 2.7

Hình 2.8

Trang 24

Hình 2.9

Hình 2.10

Trang 25

BÀI 2: 19

output

(OE: cho phép chip select

2.3 PLD (PROGRAMMABLE LOGIC DEVICE)

Trang 28

Hình 2.14Chú ý:

16

L

C

Trang 29

BÀI 2: 23

Hình 2.15: VV

Hình 2.16

Trang 34

AND (flip-flop +I/O)

Trang 36

Hình 2.21:

Trang 38

xung clock

các

flip-kích

làm hai

3.1a và 3.1b

X

Trang 39

BÀI 3: 33(a) Mealy

(b) Moore Hình

Trang 44

.3 và gi

3

3.1b

Trang 47

BÀI 3: HÁI 41ASM, )

-là

n

(hình 3.10) Các nhãn trên gi

Trang 49

BÀI 3: 43thái khác

S0 S2 S0

S1 S2 S1

Trang 51

S1 S2 S3 S1

0

0

0

1 3.15

Trang 52

g phân nhóm P1

trong P1

Trang 53

BÀI 3: 47

1

1-

0-Hình 3

nhóm trong P1

1

Trang 54

nhóm

i i-1, i>1

i-1 i-1

i-1

Trang 55

BÀI 3: 49

b

h3thái trên hình 3

Trang 56

A-

Trang 58

b = 000 010

c = 000 011

d = 010 111

Trang 62

Hình 3 3.5

33.22 Hình 3

Trang 64

Z X

Trang 65

BÀI 3: 59

-D cho Q1Q0 = 00-11)

Hình P3.3

inst13 AND2

inst14 AND2

inst15 AND3

inst16

AND3

inst17 AND3

Q

Q CLK J

Y'

Y' Q0'

Q1 Q1

Q0

J0 K0

X Q0 Q1

X

Y

Z

CLK

Trang 66

Q1 X

Q2 Q1 Q2

Q

X' Q2' Q2'

X'

Q0' Q0' X' Q0

Y

Trang 70

1 1 1 1 2 2 2 2 2 1 1 2

X = 1 0 0 1 1 0 1 0 0 0 1 1

Z = 0 1 0 0 0 1 0 1 1 0 0 0

Trang 72

END My_Example

MODULE My_Example (A,B)

C=A+B END My_Example

Cú pháp

string

module m6809a

Jean Designer

Trang 73

Cú pháp truth_table (inputs -> outputs)

hay truth_table (inputs : > reg_outs) Truth

inputs outputs reg_outs ->

Trang 74

Cú pháp State_diagram state variables

state

state_expequations

gõ vào

1 và x2

FF) State_diagram Q State S0: if (x1&x2 = =0) then S2 Else S1

z=0

Trang 75

then

3 state 0 : if a then 1 else if b then 2 else if c then 3 else 0;

Trang 76

Cú pháp Case [exps1 : state+exp1;]

[expsi : state_expi;]

end case;

STATE S0:

CASE (sel == 0): S0 ; (sel == 1): S1 ; ENDCASE

[invalues out values]

các noteinputsOutputs

InvaluesOutvalues

Trang 77

BÀI 4: ABEL 71

Cú pháp

signalattr

Q )

Cú pháp End

Hay end modname

signalattr

Q )

Trang 78

4.3 CÁC KHAI BÁO (DECLARATIONS)

Pin

Cú pháp

pin_id:

-pin #attr

A,B node 25,26 : gán tên A là nút 25,

Trang 79

BÀI 4: ABEL 73Device

Cú pháp Device-id device real_device;

device-idreal-device

4.4 CÁC KHAI BÁO KHÁC

Cú pháp

idexpr

Trang 80

Macro

Cú pháp Macro_id macro

odule

macro_iddummy_argblock

NAND3 macro (A,B,C) {!(A&B&C)}

C B

A

D = NAND 3 (Clock, Hello, busy);

Trang 81

BÀI 4: ABEL 75Enable

Cú pháp Enable output_id = [!]expr;

output_idexpr

OE pin11;

F0,F1,F2,F3 pin 19,18,17,16;

Count = [F0,F1,F2,F3];

Equations Enable count = !OE

@ALTERNATE

ình)

Trang 83

A2 A3

Y0

S1

U2 16V8

1 2 3 4 5 6 7 8 9 11

12 13 14 15 16 17 18 19

I0 I1 I2 I3 I4 I5 I6 I7 I8 I9

F0 F1 F2 F3 F4 F5 F6 F7

B1

C0

Y1 C2

Y2 A0

B3

Y3 C3

S0 A1

C1 B2 B0

Trang 84

Ngõ ra : [y0, y1, y2, y3]

Trang 86

(select = = ^b00)

ame

Module mod- -

Trang 89

BÀI 4: ABEL 83

Module mod- -

1 2 3 4 5 6 7 8 9 11

12 13 14 15 16 17 18 19

I0 I1 I2 I3 I4 I5 I6 I7 I8 I9

F0 F1 F2 F3 F4 F5 F6 F7

G2

Y02 Y31 B2

Y21

Y22 G1

A1

A2

Y32

Trang 90

[1,0,0] -> [H,H,H,L]; [1,0,1] -> [H,H,L,H]; [1,1,0] -> [H,L,H,H]; [1,1,1] -> [L,H,H,H]; [0,X,X] -> [H,H,H,H];

test_vectors (inputs1-> outputs1) [1,0,0] -> [H,H,H,L]; [1,0,1] -> [H,H,L,H]; [1,1,0] -> [H,L,H,H]; [1,1,1] -> [L,H,H,H]; [0,1,0] -> [H,H,H,H];

Trang 91

Module mod- -

-5:

4

mode thanh ghi

Trang 92

U2 16V8

1 2 3 4 5 6 7 8 9 11

12 13 14 15 16 17 18 19

I0 I1 I2 I3 I4 I5 I6 I7 I8 I9

F0 F1 F2 F3 F4 F5 F6

Q0

CK CL

0

Q

Cl Q Q Q Q

Q

Cl Q Q Q

Q

Cl Q Q

Q

.0.1.23

3

.0.12

2

.01

1

Trang 93

BÀI 4: ABEL 87trình

Trang 94

Sinh v

Câu 1:

Câu 2:

Trang 96

PACKAGE example_arithmetic IS

- Subprogram declaration

- Type, subtype declaration

- Constant, deferred constant declaration

- Signal declaration creates a global signal

Trang 97

PORT( A,B : IN BIT;

SUM,CARRY : OUT BIT);

Trang 98

attribute pinnum: string;

attribute pinnum of c: signal is "1,2,3";

attribute pinnum of d: signal is "6,5,4";

attribute pinnum of e: signal is "2";

END my_design;

Trang 99

BÀI 5: VHDL 93ARCHITECTURE

PORT( A,B : IN BIT;

SUM,CARRY : OUT BIT);

X1: XOR2 port map (A,B,SUM);

A1: AND2 port map (A,B,CARRY);

END HA_STRUCTURE;

trí

Trang 100

ENTITY HALF_ADDER IS

PORT( A,B : IN BIT;

SUM,CARRY : OUT BIT);

ENTITY HALF_ADDER IS

PORT( A,B : IN BIT;

SUM,CARRY : OUT BIT);

Trang 101

BÀI 5: VHDL 95-FF:

structure dataflow

behavior

Trang 102

ENTITY FULL_ADDER IS

PORT( A,B,CIN : IN BIT;

SUM, COUT : OUT BIT);

Trang 104

For A3: AND2

Use entity HS_LIB.AND2HS(AND2STR);

PORT MAP (HS_B => A1, HS_Z=>Z, HS_A => A0 );

End for;

For all : OR2

Use entity CMOS_LIB.OR2CMOS(OR2STR);

End for;

For others: AND2

Use entity WORK.A_GATE(A_GATE_BODY);

X1: XOR2 port map(A, B, S1);

X1: XOR2 port map(S1, Cin, SUM);

A1: AND2 port map(S2, A, B);

A2: AND2 port map(S3, B, Cin);

A3: AND2 port map(S4, A, Cin);

O1: OR2 port map(S2, S3, S5);

O2: OR2 port map(S3, B, Cin);

NAND_GATE port map(S4,S5,Cout);

END FA_STR;

Trang 105

BÀI 5: VHDL 99

Type STATE_TYPE is (HALT, READY, RUN, ERROR);

HALT< READY< RUN< ERROR

Variable STATE: STATE_TYPE;

Type

Function CODE (C: in INTEGER) return CODE_TYPE;

Trang 106

-

type LENGTH is range 0 to 1000;

type BYTE_INT is range 128 to 127;

type MY_INTEGER is range -2147483647 to 2147483647;

-

Type WORD is array (31 downto 0) of BIT;

Type RAM is array (1023 downto 0) of WORD;

Thay vì:

Type OTHER_RAM is array (1023 downto 0, 31 downto 0) of BIT

-

Trang 107

BÀI 5: VHDL 101

Architecture A of E is

Type CODE_TYPE is (NONE, DATA, STATMT) ;

Type ITEM_TYPE is record;

Trang 108

after và reject không

xác

wait forfor

Trang 109

BÀI 5: VHDL 103

Constant constant_name : type_name [:=value]

Constant rise_time : time :=10 ns;

Constant bus_width : integer :=8;

Type TAB2 is array (BIT, BIT) of BIT;

Constant

Signal Z, A, B : BIT;

Z <= AND_TAB (A,B);

Trang 110

Z <= CST1 when else S when B= CST2 else CST3;

Variable variable_name: type_name [:=value];

Variable CTRL_STATUS : BIT_VECTOR (10 DOWNTO 0);

Trang 111

BÀI 5: VHDL 105Entity MEMO_ONE is

Port ( DATA: in BIT_VECTOR (1 downto 0);

CLOCK :in BIT;

Trang 112

Signal clock: bit;

Trang 113

BÀI 5: VHDL 107

AN,

A and B nand C; (A and B) nand C;

Signal S, X, Y: BIT_VECTOR (1 downto 0);

Trang 114

Các t

is true is true is also true

Trang 115

BÀI 5: VHDL 109

là sll, srl, sla, sra, rol và ror

Phép chia "/", phép nhân "* mod rem

Trang 116

H

Trang 117

BÀI 5: VHDL 111

Signal <= a_waveform_with_one_item_and_without_delay_expression

waitwait

Trang 118

Wait until and

if

Trang 120

If CONDITION (l1, l2,l3) then RESULT <= DATA (l1, l2, l3);

End if;

ra

Type CODE_TYPE is (ADD, SUB, RST, INCX);

Subtype WORD is INTEGER range 0 to 3;

Signal CODE: CODE_TYPE;

Trang 121

RESULT <= DEFAULT_VALUE; default assignment

If CONDITION (l1, l2, l3) then RESULT <= DATA (l1, l2, l3, RESULT);

End if;

ra rõ ràng:

If CONDITION (l1, l2, l3)

then RESULT <= DATA (l1, l2, l3, RESULT);

else RESULT <= DEFAULT_VALUE;

End if;

luôn là TRUE

Trang 123

Process synchronous finite state machine with two states

Type T_STATE is (STOP, GO);

Variable STATE: T_STATE;

Begin

Wait until

Case STATE is variable STATE is read

before being target of assignment

when STOP => STATE:= GO;

when GO => STATE:= STOP;

end case;

End process;

Trang 124

S <= A;

Các phép gán tín

Trang 125

BÀI 5: VHDL 119Component.

Khi sa

Architecture SYNTHESIZABLE of DRIVE is

Signal ORDER: ORDER_TYPE;

Signal CONTROL: BIT;

Signal DATA_IN, DATA_OUT: BIT_VECTOR(1 to N);

for CONTROLER : CTRL use entity WORD.CTRL(A);

for OPERATIÊNG_PART:OPRT use entity WORD OPRT(A) generic map (N);

begin

two component instantiation statements

CONTROLER: CTRL port map(CONTROL, ORDER);

OPERATIVE_PART: OPRT port map (ORDER, DATA_IN, DATA_OUT);

End SYNTHESIZABLE;

Trang 127

-

-

Trang 128

resolved

P (A, B, C); concurent procedure call;

Process process equivalent to the previous concurent procedure call

Begin C is assumed to be an actual parameter of module out

Trang 132

Signal REG: REG_TYPE;

BEGIN

P_REG: process (DATA, CLK, RESET)

Begin

REG <= REG_TYPE (others

End if;

End process;

P_FOUND: process (REG)

Variable CPT: NATURAL range 0 to ERROR_NUMBER +1;

Begin

CPT := 0;

For l in range loop

If PATTERN(l) /= REG(l) then

Trang 133

BÀI 5: VHDL 127Trong các

Trang 134

(STD.STANDARD)

Signal l1, l2, SUM_l: INTEGER range 16 to 15;

Signal N1, N2, SUM_N: INTEGER range 0 to 47;

SUM_l <= l1 + l2;

SUM_N <= N1 + N2;

1 bit -1)

Trang 136

PORT (A, B : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

AeqB, AgtB, AltB :OUT STD_LOGIC);

END compare;

ARCHITECTURE behavior OF compare IS

BEGIN

WHEN WHEN WHEN END behavior;

Trang 137

BÀI 5: VHDL 131

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY priority IS

PORT (w :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

y :OUT STD_LOGIC_VECTOR(1 DOWNTO 0);

END PROCESS;

Z <=0 WHEN w1 WHEN OTHERS;

END behavior;

En là ngõ vào cho phép

c

Trang 140

LIBRARY IEEE;

USE ieee.std_logic_1164.all;

ENTITY regn IS

GENERIC ( N : INTEGER := 16);

Port ( D, clock : IN std_logic_vector (N-1 DOWNTO 0);

Reset, clock : IN std_logic;

Q : OUT std_logic_vector (N-1 DOWNTO 0);

Port ( Reset, Clock, En : IN std_logic;

Q : OUT std_logic_vector (3 DOWNTO 0);

END upcount;

ARCHITECTURE behavior OF upcount IS

SIGNAL Count : STD_LOGIC_VECTOR (3 DOWNTO 0);

BEGIN

PROCESS (Clock, Reset)

Trang 141

BÀI 5: VHDL 135BEGIN

Trang 142

architecture state_machine of divby5 is

type StateType is (state0, state1, state2, state3, state4); signal p_s, n_s : StateType;

Trang 144

trúc

Câu 1:

trang web www.altera.com

Trang 150

Cú pháp:

Reg

Input, Output, Inout:

Cú pháp:

Input [msb:lsb] port ngõ vào

Output [msb:lsb] port ngõ ra

Module sample (b, e, c, a);

Output

Trang 153

BÀI 6: VERILOG 147f= a +c;

g= c n;

-3b001) = (3b111) và thì -1< 6

Trang 155

BÀI 6: VERILOG 149Endmodule

Trang 156

Assign

assign a = (g) ? x : y;

Assign a = ( inc = =2) ? a+1: a-1;

Tên [ ]

Trang 158

Cú pháp:

Module tên module (danh sách port);

Input [msb:lsb] danh sách port ngõ vào;

Output [msb:lsb] danh sách port ngõ ra;

Inout [ msb:lsb ] danh sách port vào_ ra;

Endmodule

Module add_sub(add, in1, in2, out);

Input[7:0 ] in1, in2;

Wire in1, in2;

Output [7:0] out;

Reg out;

Endmodule

Trang 159

BÀI 6: VERILOG 153

Cú pháp:

Module tên module (danh sách port);

Input [msb:lsb] danh sách port ngõ vào;

Output [msb:lsb] danh sách port ngõ ra;

Inout [ msb:lsb ] danh sách port vào_ ra;

Endmodule

Module add_sub(add, in1, in2, out);

Input[7:0 ] in1, in2;

Wire in1, in2;

Output [7:0] out;

Reg out;

Endmodule

Trang 161

BÀI 6: VERILOG 155endmodule

// module instantiations

wire [3:0] in1, in2;

wire [3:0] o1, o2;

and4 C1(in1, in2,o1);

Trang 162

intra_assignment delay:

Reg [6:0] sum; reg h, zilch;

Cú pháp:

Trang 164

Cú pháp:

For

- begin

Trang 165

BÀI 6: VERILOG 159K

Trang 169

Reg [7:0] opr1, opr2;

Function[16:0] decode add(instr)

Input [31:0] instr;

Reg add_func;

Reg [7:0] opcode, opr1, opr2;

Trang 171

BÀI 6: VERILOG 165always @(intruction) begin

{func, opr2, opr1}= decode_add (intruction);

Trang 172

Else begin

End

ích rõ

6.12 M T S VÍ D :

// Khai báo module

Input

Output

Trang 173

BÀI 6: VERILOG 167Reg

wire carry_out, carry_in;

wire[3:0] sum_out, ina, inb;

assign

{ carry_out, sum_out } = ina + inb + carry_in;

Endmodule

Trang 175

BÀI 6: VERILOG 169input w0, w1;

Trang 177

BÀI 6: VERILOG 171endcase

Trang 178

1 Tocci, Digital Systems, Prentice Hall 1985

2

Minh

Trang 179

BÀI 6: VERILOG 1734'b0110: led = 8'b10111110;

Trang 180

1 Tocci, Digital Systems, Prentice Hall 1985

2

Minh

Ngày đăng: 06/02/2024, 09:50

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w