Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Đồ án cơ sở giới thiệu về ngôn ngữ VHDL và FPGA
PREMIUM
Số trang
64
Kích thước
1.0 MB
Định dạng
PDF
Lượt xem
1706

Đồ án cơ sở giới thiệu về ngôn ngữ VHDL và FPGA

Nội dung xem thử

Mô tả chi tiết

Đồ án cơ sở GVHD: Th.s Cao Trần Bảo Thương

GI I THI U TÀI Ớ Ệ ĐỀ

Đề ề ế ế ệ ố ử ả tài này trình bày v thi t k h th ng x lý nh Video trên FPGA (Cyclone

II) bao g m các thành ph n: Thu nh n và s hóa tín hi u Video Analog, x lý nh ồ ầ ậ ố ệ ử ả

Video s , hi n th lên VGA. ố ể ị

Trong đ tài này ngoài Cyclone II các thành ph n tích h p trên Kit DE2 mà ta s s ề ầ ợ ẽ ử

d ng là: Chip mã hóa tín hi u Video Analog ADV7181B, SDRAM IS42S16400 đ l u ụ ệ ể ư

tr và xu t frame nh h p lý, c ng VGA (chip ADV7123) đ hi n th nh lên màn hình. ữ ấ ả ợ ổ ể ể ị ả

Trang 1

Đồ án cơ sở GVHD: Th.s Cao Trần Bảo Thương

1. GIỚI THIỆU VỀ NGÔN NGỮ VHDL VÀ FPGA

1. NGÔN NGỮ VHDL

VHDL là một ngôn ngữ mô tả phần cứng (hardware description language),

mô tả hành vi của mạch điện hoặc hệ thống, từ đó mạch điện vật lý hoặc hệ thống có

thể được thực thi.

VHDL là viết tắt của VHSIC Hardware Description Language. Bản thân VHSIC

là viết tắt của Very High Speed Integrated Circuits (mạch tích hợp tốc độ cao), lần

đầu tiên được sáng lập bởi United State Department of Defense trong những năm 80,

sau đó tạo ra VHDL. Phiên bản đầu tiên là VHDL 87, lần nâng cấp sau đó có tên là

HDL 93. VHDL là ngôn ngữ mô tả phần cứng nguyên gốc đầu tiên được chuẩn hóa

bởi Institue of Electrical and Electronics Engineers (IEEE), tới chuẩn IEEE 1076.

Trong IEEE 1164, có một chuẩn được thêm vào là giới thiệu hệ thống logic đa giá trị

(multi-valued logic system).

Động cơ thúc đẩy cơ bản khi dùng VHDL (hay dùng Verilog) là VHDL là một

ngôn ngữ độc lập chuẩn của các nhà công nghệ, các nhà phân phối do đó chúng có

khả năng portable và kế thừa cao (reusable). Hai ứng dụng trực tiếp chính của

VHDL là trong mảng các thiết bị logic lập trình được (Programmable Logic Devices)

(bao gồm CPLDs – Complex Programmable Logic Devices và FPGAs – Field

Programmable Gate Arrays). Mỗi khi mã nguồn VHDL được viết, chúng có thể được

dùng để thực thi mạch điện trong các thiết bị lập trình được (từ Altera, Xilinx,

Almel, ..) hoặc có thể gửi đến các xưởng chế tạo các chíp ASIC. Hiện này, rất nhiều các

chip thương mại phức tạp (ví dụ như các microcontrollers ) được thiết kế dựa trên

cách tiếp cận này.

Một điều chú ý về VHDL là trái ngược với các chương trình máy tính thông

thường được thực hiện tuần tự thì các câu lệnh được thực hiện song song

(concurrent). Vì lí do đó, nên VHDL thường được coi là một mã nguồn hơn là một

chương trình. Trong VHDL chỉ có các câu lệnh đặt trong PROCESS, FUNCTION, hay

PROCEDURE được thực thi tuần tự.

Một trong những tiện ích lớn của VHDL là cho phép tổng hợp mạch điện hoặc

hệ thống trong thiết bị khả lập trình (programmable devide) (PLD hoặc FPGA) hoặc

trong một hệ ASIC.

Trang 2

Đồ án cơ sở GVHD: Th.s Cao Trần Bảo Thương

2. FPGA

FPGA (Field Programable Gate Arrays) là một thiết bị bán dẫn bao gồm các

khối logic lập trình được gọi là "Logic Block", và các kết nối khả trình. Các khối logic

có thể được lập trình để thực hiện các chức năng của các khối logic cơ bản như AND,

XOR, hoặc các chức năng kết hợp phức tạp hơn như decoder hoặc các phép tính toán

học. Trong hầu hết các kiến trúc FPGA, các khối logic cũng bao gồm cả các phần tử

nhớ. Đó có thể là các Flip-Flop hoặc những bộ nhớ hoàn chỉnh hơn.

Các kết nối khả trình cho phép các khối logic có thể nối với nhau theo thiết kế

của người xây dựng hệ thống, giống như một bảng mạch khả trình.

Một số kiến trúc FPGA hiện nay còn có thể cho phép cấu hình lại từng phần

(partial re-configuration). Có nghĩa là cho phép một phần của thiết kế được cấu hình

lại trong khi những thiết kế khác vẫn tiếp tục hoạt động.

Một ưu điểm khác của FPGA, là người thiết kế có thể tích hợp vào đó các bộ

xử lý mềm (soft processor) hay vi xử lý tích hợp (embedded processor). Các vi xử lý

này có thể được thiết kế như các khối logic thông thường, mà mã nguồn do các hãng

cung cấp, thực thi các lệnh theo chương trình được nạp riêng biệt, và có các ngoại vi

được thiết kế linh động ( khối giao tiếp UART, vào/ra đa chức năng GPIO, thernet...).

Các vi xử lý này cũng có thể được lập trình lại (re-configurable computing) ngay

trong khi đang chạy.

FPGA được ứng dụng điển hình trong các lĩnh vực như: xử lý tín hiệu số, xử lý

ảnh, thị giác máy, nhận dạng giọng nói, mã hóa, mô phỏng (emulation)...FPGA đặc

biệt mạnh trong các lĩnh vực hoặc ứng dụng mà kiến trúc của nó yêu cầu một lượng

rất lớn xử lý song song, đặc biết là mã hóa và giải mã. FPGA cũng được sử dụng

trong những ứng dụng cần thực thi các thuật toán như FFT, nhân chập

(convolution), thay thế cho vi xử lý.

Hiện nay công nghệ FPGA đang được sản xuất và hỗ trợ phần mềm bởi các

hãng như: Xilinx, Altera, Actel, Atmel... Trong đó Xilinx và Altera là 2 hãng hàng đầu.

Xilinx cung cấp phần mềm miễn phí trên nền Windows, Linux, trong khi Altera cung

cấp những công cụ miễn phí trên nền Windows, Linux và Solaris.

1.2.1 KIẾN TRÚC FPGA

Trang 3

Đồ án cơ sở GVHD: Th.s Cao Trần Bảo Thương

Hình 1.1: kiến trúc FPGA

Mỗi nhà sản xuất FPGA có riêng cấu trúc FPGA, nhưng nhìn chung cấu trúc

được thể hiện giống như trong hình bên trên. Cấu trúc FPGA bao gồm có

configuration logic blocks (CLBs), configurable I/O blocks (IOB), và programmable

interconnect. Và tất nhiên, chúng có mạch clock để truyền tín hiệu clock tới các logic

block, và thêm vào đó có các logic resources như ALUs, memory và có thể có cả

decoders. Các phần tử lập trình được của FPGA có 2 dạng cơ bản là các RAM tĩnh

(Static RAM) và anti - fuses.

Configurable I/O Blocks:

Configurable Logic Blocks (CLBs) bao gồm các Look-Up Tables (LUTs) rất linh

động có chức năng thực thi các logic và các phần tử nhớ dùng như là các flip-flop

hoặc các chốt (latch). CLB thực hiện phần lớn các chức năng logic như là lưu trữ dữ

liệu,..

Configurable I/O Blocks:

Input/Output Blocks (IOBs) điều khiển dòng dữ liệu giữa các chân vào ra I/O

và các logic bên trong của FPGA. Nó bao gồm có các bộ đệm vào và ra với 3 trạng

thái và điều khiển ngõ ra dạng open collector. Phần lớn là có trở kéo lên ở ngõ ra và

Trang 4

Đồ án cơ sở GVHD: Th.s Cao Trần Bảo Thương

thỉnh thoảng lại có trở kéo xuống.IOBs hỗ trợ luồng dữ liệu 2 chiều (bidirectional

data flow) và hoạt động logic 3 trạng thái (3 state). Hỗ trợ phần lớn các chuẩn tín

hiệu, bao gồm một vài chuẩn tốc độ cao, như Double Data-Rate (DDR).

Programmable Interconnect:

Interconnect ở FPGA khác xa so với ở CPLD, tuy nhiên lại giống với của gate array

ASIC. Có một line dài được dùng để nối các CLBs quan trọng mà chúng lại ở cách xa

nhau mà không gây ra quá nhiều trễ. Chúng có thể được dùng như là các bus ở trong

chip. Có các line ngắn được dùng để liên kết các CLBs riêng rẽ nhưng đặt gần nhau.

Và cũng thường có vài ma trận chuyển đổi (switch matrices), giống như trong CPLD,

nối giữa các line dài và ngắn lại với nhau theo một số cách đặc biệt. Các chuyển đổi

lập trình được (Programmable switches) bên trong chip cho phép kết nối giữa CLBs

tới các interconnect line và giữa interconnect line với các line khác và với switch

matrix. Các bộ đệm 3 trạng thái được dùng để kết nối phần lớn các CLBs với các line

dài (long line), tạo nên các bus. Các long line đặc biệt, gọi là các line clock toàn cục

(global clock lines), được thiết kế đặc biệt cho trở kháng thấp và nhờ đó mà thời

gian lan truyền nhanh hơn. Chúng được kết nối với các bộ đệm clock và với mỗi

phần tử được clock trong mỗi CLB. Đó là cách mà clock có thể phân phối bên trong

FPGA.

Mạch đồng hồ (Clock Circuitry):

Các khối vào ra với bộ đệm clock high drive gọi là các clock driver, nằm rải

rác xung quanh chip. Các bộ đệm này được nối với các chân clock vào và lái các tín

hiệu clock vào các đường clock toàn cục (global clock line) như mô tả ở bên trên. Các

đường clock được thiết kế sao cho thời gian thời gian lệch nhỏ nhất và thời gian lan

truyền nhanh. Thiết kế đồng bộ là yêu cầu bắt buộc với FPGA, từ khi độ lệch tuyệt đối

và trễ không được bảo đảm. Chỉ khi dùng các tín hiệu clock từ các bộ đệm clock thì

thời gian trễ tương đối và thời gian lệch mới được đảm bảo.

2. CHIP MA HOA TIN HIÊU VIDEO ADV7181B ́ ̃ ́ ́ ̣

1. CH C N NG VÀ D NG D LI U NGÕ RA Ứ Ă Ạ Ữ Ệ

Nguôn anh cân x ly la tin hiêu analog video do DVD plalyer xuât ra. Kêt nôi ngo ̀ ̀ ́ ̀ ́ ́ ́ ́ ̃ ̉ ử ̣

ra TV-Out composite cua DVD Player v i công TV-In trên Kit DE2 thi bô ̉ ơ ̉ ̣ ́ ̀

ADV7181B se sô hoa tin hiêu nay sang chuân ITU - RTBT 656 la chuôi cac frame anh. ̃ ́ ́ ́ ̀ ̀ ̃ ́ ̣ ̉ ̉

Trang 5

Đồ án cơ sở GVHD: Th.s Cao Trần Bảo Thương

Môi điêm trong frame anh thu v đ c biêu di n d i dang I(x,y) trong đo x,y la toa đô ̃ ́ ́ ̀ ̉ ̉ ề ượ ̉ ễ ươ ̣ ̣ ̣

cua pixel trên frame va I la m c xam t ng ng cua pixel đo. Nh vây 1 frame anh thu ̉ ư ươ ư ̉ ư ̣ ̉ ̀ ̀ ́ ́ ́ ́

đ c se đ c biêu diên d i dang môt ma trân 2 chiêu 720 x 525 v i 720 la sô pixel trên 1 ượ ươ ̉ ươ ̣ ̣ ̣ ơ ̃ ̃ ́ ̀ ́ ̀ ́

hang, 525 la sô hang trong 1 frame. ̀ ̀ ́ ̀

Chuân Video ITU – RBT601: ̉

Chuân ITU – RBT 610/656 đinh nghia môt thiêt kê cho viêc ma hoa môt khung ̉ ̣ ̣ ̣ ̣ ̃ ́ ́ ̃ ́

bao gôm 525 (ho c 625) line tin hiêu video t ng t thanh dang sô, truyên tin hiêu v i ̀ ́ ̀ ́ ̀ ́ ́ ă ̣ ươ ư ̣ ̣ ơ

xung clock 27MHz. Môt single horizontal line co câu truc: ̣ ́ ́ ́

EAV BLANKING SAV Active Video Data

EAV, BLANKING va SAV đêu la cac tr ng (field) phân biêt đê đ ng bô d liêu ̀ ̀ ̀ ́ ̀ ̃ ươ ̣ ̉ ồ ̣ ư ̣

đ c truyên. ượ ̀

EAV va SAV êu la cac tr ng 4 byte: ̀ ̀ ̀ ́ ̀ đ ươ

EAV: cho biêt điêm kêt thuc c a Active Video Data trong line hi n hanh ́ ́ ́ ̀ ̉ ủ ệ

cung nh la điêm b t đâu cua line tiêp theo. ̃ ̀ ́ ̀ ́ ư ̉ ă ̉

SAV: bao hiêu điêm b t đâu cua Active Video Data trong line hiên hanh. ́ ́ ̀ ̀ ̣ ̉ ă ̉ ̣

FFh 00h 00h XY

Byte th t XY ứ ư ch a thông tin v tr ng đ c truy n, ứ ề ườ ượ ề tình tr ng c a ạ ủ

kho ng ả tr ng (field blanking) theo chi u d c (Vertical) ho c c a dòng tr ng (line ố ề ọ ă ủ ố

blanking) theo chi u ngang (horizontal): ề

MSB LSB

1 F V H P3 P2 P1 P0

Bit Symbol Ch c n ng ứ ă

7 1 Luôn m c 1 ở ứ

6 F Field Bit: 0 => Field1; 1 => Field2

Trang 6

Tải ngay đi em, còn do dự, trời tối mất!