1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế IC trên FPGA - 1 doc

16 267 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Định dạng
Số trang 16
Dung lượng 755,88 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

0ҥFK WXҫQ Wӵ0ҥFK WXҫQ Wӵ là ORҥL PҥFK ÿLӋQ Wӱ Vӕ mà tín KLӋX ÿҫX ra WҥL WKӡL ÿLӇP WӟL FKҷQJ QKӳQJ SKө WKXӝF vào Wә KӧS giá WUӏ ELӃQ vào WҥL WKӡL ÿLӇP KLӋQ WҥL mà còn SKө WKXӝF vào tín KL

Trang 1

7KLӃW NӃ IC trên FPGA

(Field-Programmable Gate Array )

ĈһQJ Bá KҳF 7ULӅX

*LҧQJ viên Khoa CNTT 7UѭӡQJ Ĉ+%.Ĉj 1ҹQJ

Trang 2

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

Multiplier ( PҥFK nhân)

† 0ҥFK nhân có 2 input a,

b ÿӅX là 4 bit thì output

SKҧL là Pҩ\ bit?

† => output q SKҧL 8 bit

† 9ӟL Verilog ta FKӍ FҫQ

dùng OӋQK gán:

assign q = a * b;

2

Multiplier

4

4

8

Trang 3

Multiplier, FKѭѫQJ trình PүX

module Multiplier(a, b, q);

input [3:0] a, b;

output [7:0] q;

assign q = a * b;

endmodule

† Khi xem report ta WKҩ\:

4x4-bit multiplier : 1

Cell Usage :

# BELS : 72

# AND2 : 37

# OR2 : 14

# OR3 : 1

# XOR2 : 20

# IO Buffers : 16

# IBUF : 8

Multiplier

4

4

8

Trang 4

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

Comparator ( PҥFK so sánh)

4

Greater

8

8

1

module Greater(a, b, a_gt_b);

input [7:0] a, b;

output a_gt_b;

assign a_gt_b = (a > b)? 1'b1 : 1'b0;

endmodule

† 0ҥFK so sánh OӟQ KѫQ:

„ Khi a > b thì cho ra giá WUӏ 1,

QӃX không thì cho ra giá WUӏ 0.

Trang 5

Comparator ( PҥFK so sánh)

Equal

8

8

1

module Equal(a, b, a_eq_b);

input [7:0] a, b;

output a_eq_b;

assign a_eq_b = (a == b);

endmodule

† 0ҥFK so sánh EҵQJ

„ Khi a = b thì cho ra giá WUӏ 1,

QӃX không thì cho ra giá WUӏ 0.

Trang 6

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

ROM

SKӓQJ QKѭ WKӃ nào?

6

† Input là ÿӏD FKӍ các ô QKӟ

Output là giá WUӏ OѭX trong

ô QKӟ ÿy

ROM

addr data

† /ұS EҧQJ WѭѫQJ quan

JLӳD addr và data

† Mô SKӓQJ:

„ Dùng OӋQK gì ÿӇ mô

SKӓQJ?

Trang 7

&KѭѫQJ trình

module ROM(addr, data);

input [3:0] addr;

output [7:0] data;

assign data = romOut(addr);

function [7:0] romOut;

input [3:0] addr;

case (addr)

0: romOut = 0;

1: romOut = 1;

««««««

14: romOut = 196;

15: romOut = 225;

endcase endfunction

endmodule

Macro Statistics

# ROMs : 1 16x8-bit ROM : 1

Trang 8

0ҥFK WXҫQ Wӵ

0ҥFK WXҫQ Wӵ là ORҥL PҥFK ÿLӋQ Wӱ Vӕ mà

tín KLӋX ÿҫX ra WҥL WKӡL ÿLӇP WӟL FKҷQJ

QKӳQJ SKө WKXӝF vào Wә KӧS giá WUӏ ELӃQ

vào WҥL WKӡL ÿLӇP KLӋQ WҥL mà còn SKө WKXӝF vào tín KLӋX ÿҫX ra hiên WҥL.

8

Trang 9

D Flip-flop

† D Flip-flop là gì?

D flip-flop

D

Clk

Q

Clock D Q Qprev Rising edge 0 0 X Rising edge 1 1 X

† %ҧQJ công tác FӫD D

Flip-flop ORҥL rising edge (thay

ÿәL WUҥQJ thái khi clock

FKX\ӇQ Wӯ 0 sang 1)

Trang 10

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

Module D_FlipFlop

10

module D_FlipFlop(clk, D, Q);

input clk, D;

output Q;

reg Q;

always @(posedge clk)

begin

Q <= D;

end

endmodule

† 3KҫQ PӅP QKұQ ra

ÿk\ là Flip-flop NLӇX D

Trang 11

D Flip-flop có set , reset

† Khi tín KLӋX set Wӯ 1 thành

0 thì Q EҵQJ 1

† Khi tín KLӋX reset Wӯ 1

thành 0 thì Q EҵQJ 0

† %ҧQJ công tác

D flip-flop RS

D

Clk

Q

Set

Reset

Clock Set Reset D Q Qprev Rising edge 1 1 0 0 X

Rising edge 1 1 1 1 X

Non-Rising 1 1 X Qprev

Trang 12

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

12

module D_FlipFlopWithSR(clk, set, reset, D, Q);

input clk, set, reset, D;

output Q;

reg Q;

always @(posedge clk or negedge set or negedge reset)

begin

if(reset == 0)

Q <= 0;

else if(set == 0)

Q <= 1;

else

Q <= D;

end

endmodule

Trang 13

0ҥFK WҥR ra

† 3KҫQ PӅP FNJQJ QKұQ ra ÿk\ là Flip-flop

NLӇX D có set (prepare) và reset (clear)

Trang 14

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

JK Flip-flop có set , reset

† Khi tín KLӋX set Wӯ 1 thành

0 thì Q EҵQJ 1

† Khi tín KLӋX reset Wӯ 1

thành 0 thì A EҵQJ 0

14

† %ҧQJ công tác

JK flip-flop RS

J

Clk

Q

Set

Reset

K

1 1 not Q

Trang 15

Module JK_FlipFlopWithSR

module JK_FlipFlopWithSR(clk, set, reset, J, K, Q);

input clk, set, reset, J, K;

output Q;

always @(posedge clk or negedge set or negedge reset) begin

if(reset == 0)

Q <= 0;

else if(set == 0)

Q <= 1;

else

case ({J, K})

2'b00: Q <= Q;

2'b01: Q <= 0;

2'b10: Q <= 1;

2'b11: Q <= ~Q;

Trang 16

2009 ĈɴQJBá KɬF 7ULɾX, GV khoa CNTT, WUɉ͝QJ Ĉ+%.Ĉ1

0ҥFK WҥR ra

† &KӍ có VҹQ Flip-flop NLӇX D có set (prepare) và

reset (clear) Flip-flop NLӇX JK FҫQ ÿѭӧF Wә

KӧS Wӯ Flip-flop NLӇX D và các FәQJ logic Fѫ

EҧQ khác

16

Ngày đăng: 29/07/2014, 00:21

TỪ KHÓA LIÊN QUAN

w