1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế hệ thống xử lý ảnh video trên FPGA (cyclone II)

56 659 1

Đ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 56
Dung lượng 1,5 MB

Nội dung

thiết kế hệ thống xử lý ảnh video trên FPGA (cyclone II)

Trang 1

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 2

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

1.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

1.2 FPGA

Trang 3

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 4

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 5

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 CHÍP MÃ HÓA TÍN HIỆU VIDEO ADV7181B

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

Nguồn ảnh cần xử lý là tín hiệu analog video do DVD plalyer xuất ra Kết nối ngõ ra TV-Out composite của DVD Player với cổng TV-In trên Kit DE2 thì bộ ADV7181B sẽ số hóa tín hiệu này sang chuẩn ITU - RTBT 656 là chuỗi các frame ảnh Mỗi điểm trong frame ảnh thu về được biểu diễn dưới dạng I(x,y) trong đó x,y là tọa độ của pixel trên frame và I là mức xám tương ứng của pixel đó Như vậy 1 frame

Trang 6

ảnh thu được sẽ đươc biểu diễn dưới dạng một ma trận 2 chiều 720 x 525 với 720 là

số pixel trên 1 hàng, 525 là số hàng trong 1 frame

Chuẩn Video ITU – RBT601:

Chuẩn ITU – RBT 610/656 định nghĩa một thiết kế cho việc mã hóa một

khung bao gồm 525 (hoặc 625) line tín hiệu video tương tự thành dạng số, truyền tín

hiệu với xung clock 27MHz Một single horizontal line có cấu trúc:

EAV, BLANKING và SAV đều là các trường (field) phân biệt để đồng bộ dữ

liệu được truyền

EAV và SAV đều là các trường 4 byte:

EAV: cho biết điểm kết thúc của Active Video Data trong line hiện hành

cũng như là điểm bắt đầu của line tiếp theo

SAV: báo hiệu điểm bắt đầu của Active Video Data trong line hiện hành

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):

Vertical Blanking Status Bit:

- Lên mức cao khi ở vertical field blanking interval

- Xuống mức thấp ở các trường hợp khác

4 H Horizontal Blanking Status bit:

- Nếu là trường SAV thì ở mức 0

Trang 7

- Nếu là trường EAV thì ở mức 1

Các Protecction bit thì dùng để kiểm tra và sửa lỗi phụ thuộc vào các bít

F,V,H nhưng khi nhận Video Stream ta có thể bỏ qua các bit này nên ta không xét

đến

Ý nghĩa của các bit F và V là để đảm bảo sự đồng bộ các horizontal line trong

một frame theo chiều dọc:

TABLE 1 Field interval definitions

625 525 V-digital field blanking

Line 1 Line 4 Line 313 Line 266

Cách đặt giá trị các bit F,V theo trường (Field 1 hoặc 2) và tính hiệu dụng

(Active or Blanking) sẽ được hiểu rõ hơn qua bảng mô tả một frame gồm 525

horizontal line sau :

Trang 8

Field 1 (F=0) : 262 line từ line 4 đến line 265; Field 2(F=1) : 263 line từ line

266 đến line 3

Active or Blanking : các Active video data và các Vertical Blanking Interval

được sắp xếp xen kẽ nhau :

Active portion (V=0) Odd Field : 244 line từ 20->263; Even Field: 243 line từ

283->525;

Vertical Blanking Interval (V=1): 38 line gồm 19 line từ 1->19 và 19 line từ

266->282;

Hình 2.1: Frame ảnh theo chuẩn ITU656

Một horizontal line tín hiệu sẽ gồm các thành phần sau:

Blanking: trong suốt thời gian truyền tín hiệu Video, ở giữa các Active video

signal Segments sẽ là các horizontal blanking interval Giá trị của các byte trong

Trang 9

trường này sẽ phải phù hợp với các cấp độ (level) của các tín hiệu Cb, Cr và Y tương ứng theo quy tắc sau: Cb = 80h; Y = 10h; Cr = 80h ta có chuỗi byte : 80h, 10h, 80h,…80h,10h

Tùy vào số line tín hiệu mà chuỗi này sẽ bao gồm 268 byte (khung 525 line) hoặc là 280 byte (khung 625 line)

Active Video Data: Có tất cả 1440 byte chứa đựng các thông tin về ảnh: 720

giá trị Y (luminace-brightness); 360 giá trị Cr (red chrominace); 360 giá trị Cb (blue chromiance) được sắp xếp theo từng nhóm cứ một Cb và Cr thì có 2 giá trị Y: CbYnCrYn+1 tạo thành chuỗi:

… … …

Các trường SAV và EAV: mỗi trường dài 4 byte

Vậy trong hệ thống 525 line thì một Horizontal line sẽ bao gồm 1716 byte

2.2 GIAO THỨC CÀI ĐẶT I2C

ADV7181B hỗ trợ một giao diện kết nối 2 dây tuần tự “a-wire serial interface” I2C Hai ngõ vào : dữ liệu tuần tự SDA, xung clock tuần tự SCLK mang thông tin giữa ADV7181B với bộ điều khiển hệ thống I2C Mỗi thiết bị tới (Slave) sẽ được nhận ra bởi một địa chỉ duy nhất

Các chân I2C của ADV7181B cho phép người dùng cài đặt, cấu hình bộ mã hóa và đọc ngược lại dữ liệu VBI (vertical blank interval) bắt được ADV7181B có 4 địa chỉ Slave cho tất cả thao tác đọc và ghi phụ thuộc vào mức logic của chân ALSB ALSB điều khiển bit 1 của địa chỉ Slave (Slave_address[1] ) bởi việc thay đổi chân này có thể điều khiển được cả 2 bộ ADV7181B mà không có sự xung đột vì trùng địa chỉ Slave Bit thấp nhất của địa chỉ Slave( LSB hay là Slave_address[0] ) quyết định thao tác ghi hay đọc: mức 1 đọc và mức 0 thì ghi Ở đây ta chỉ sử dụng 1 bộ ADV7123, giao thức I2C chủ yếu dùng để nạp dữ liệu cho các thanh ghi nên chọn địa chỉ Slave cho chip mã hóa này là 0x40h từ bảng giá trị địa chỉ I2C Slave dưới đây:

Trang 10

Để điều khiển thiết bị trên Bus thì phải có một giao thức đặc biệt đi kèm Đầu tiên Master sẽ khởi động truyền dữ liệu bằng việc thiết lập điều kiện bắt đầu (SDA

từ 1 xuống 0 trong khi SCLK vẫn ở mức cao) ở đây ta gọi là START, nó ám chỉ rằng theo sau đó là một luồng địa chỉ hay dữ liệu Các ngoại vi đáp trả lại START và dịch chuyển 8 bit tiếp theo (7 bit địa chỉ và 1 bit đọc/ghi), các bit này được truyền từ bit cao (MSB) đến thấp (LSB) Các ngoại vi khi đã nhận ra các địa chỉ được truyền thì đáp ứng bằng cách giữ SDA = 0 trong toàn bộ chu kỳ thứ 9 của xung clock gọi là ACK Các thiết bị khác thì sẽ rút khỏi bus tại điểm này và bảo toàn trạng thái IDE (khi cả SDA và SCLK đều ở mức cao để cho các thiệt bị theo dõi 2 line này, chờ START và địa chỉ được truyền đúng) Bit đọc/ghi chỉ ra hướng của dữ liệu, LSB = 0/1 thì master ghi/đọc thông tin vào/từ ngoại vi

ADV7181B hoạt động như thiết bị Slave tiêu chuẩn trên Bus, chứa 196 địa chỉ con (Subaddress là độ lệch của địa chỉ cần thao tác với địa chỉ thiết bị) để cho phép truy cập các thanh ghi nội Điều đó giải thích rằng byte đầu tiên là địa chỉ của thiết bị

và byte thứ 2 là địa chỉ con đầu tiên Các địa chỉ con này tự động tăng dần cho phép truy đọc/ghi ở địa chỉ con bắt đầu Sự truyền dữ liệu thì luôn bị ngắt bởi điều kiện dừng (STOP) Người dùng có thể truy cập tới bất cứ duy nhất 1 thanh ghi ở địa chỉ con trên cơ sở 1-1 khi không có sự cập nhật toàn bộ các thanh ghi Ở đề tài này ta không sử dụng chế độ cập nhật toàn bộ mà chỉ truy cập vào các thanh ghi cần thiết ở các địa chỉ con trên cơ sở 1-1

START và STOP có thể xuất hiện ở bất kì đâu trong sự truyền dữ liệu, nếu các điều kiện này được khẳng định ở ngoài chuỗi liên tục với các thao tác đọc và ghi thông thường, thì nó tác động làm bus trở về trạng thái IDE Nếu địa chỉ người dùng phát ra không phù hợp (invalid) thì ADV7181B sẽ không gửi xác nhận ACK và trở về trạng thái IDE

Nếu các địa chỉ con tự động tăng dần rồi vượt quá giới hạn địa chỉ con cao nhất:

 Nếu đang đọc thì những giá trị chứa đựng trong thanh ghi có địa chỉ con cao nhất sẽ được tiếp tục đọc cho đến khi Master phát 1 NACK (SDK không bị đưa xuống mức thấp trong toàn bộ chu ky thứ 9) để chỉ rằng việc đọc kết thúc

 Nếu đang ghi thì những giá trị của byte không phù hợp sẽ không được load

Trang 11

Hình 2.1: Truyền dữ liệu trên bus và chuỗi đọc và ghi tuần tự với giao thức I2C

 Truy cập các thanh ghi : MPU có thể viết hoặc đọc các thanh ghi ngoại trừ các địa chỉ con, chúng chỉ được ghi, chúng chỉ ra các thanh ghi mà tác vụ đọc hay ghi tiếp theo truy cập đến Mọi sự giao tiếp với phần này thông qua Bus START với một

sự truy cập các thanh ghi này Các thao tác ghi hay đọc sẽ được thực hiện từ địa chỉ đích, rồi tăng lên địa chỉ tiếp theo đến khi một lệnh STOP trên Bus được thực thi

 Lập trình các thanh ghi: cấu hình cho từng thanh ghi, thanh ghi giao tiếp gồm 8 bit chỉ được ghi Sau khi thanh ghi này được truy cập trên Bus và một thao tác đọc/ghi được lựa chọn, các địa chỉ con được cài đặt chỉ ra các thanh ghi mà tác vụ sẽ đặt tới

 Chọn lựa thanh ghi: (SR đến SR0) những bit này được cài đặt để chỉ ra địa chỉ bắt đầu được yêu cầu

 Chuỗi I2C : được sử dụng khi cần các thông số vượt quá 8 bit, vì vậy nó phải được phân phối trên ít nhất 2 thanh ghi của I2C:

Khi một thông số được thay đổi bởi 2 lần ghi thì nó có thể giữ giá trị không phù hợp (invalid) trong khoảng thời gian lần đầu và lần cuối I2C được hoàn thành, có nghĩa là các bit đầu của nó có thể mang giá trị mới trong khi các bit còn lại vẫn giữ giá tri cũ

Để tránh sai sót này chuỗi I2C sẽ giữ các bit giá trị cập nhật của các thông số trong bộ nhớ cục bộ, và các bit của chuỗi I2C được cập nhật với nhau một lần khi tác

vụ ghi vào thanh ghi cuối cùng hoàn thành

Tác vụ hợp lý trên chuỗi I2C sẽ dựa trên cơ sở sau: các thanh ghi dành cho chuỗi I2C sẽ được ghi theo thứ tự tăng dần địa chỉ các thanh ghi Ví dụ: HSB[10:0] thì ghi lên 0x34 trước rồi ngay lập tức ghi thêm vào 0x35

3 SDRAM IS42S16400

Trang 12

SDRAM IS42S16400 có tất cả 67180864 bit SDRAM được tổ chức thành 4 dải (BANK) nhớ, mỗi dải có dung lượng 1024576 từ (Words) 16 bit với tốc độ truyền

 DQM mặt nạ dữ liệu: Khi cao, những tín hiệu này khống chế dữ liệu

vào/ra Khi đi kèm với sự viết, dữ liệu không thật sự viết vào Khi dữ liệu được giữ ở mức trong hai chu kỳ trước một chu kỳ đọc, việc đọc không được đưa ra từ chip Trên

một chip nhớ x16 hay DIMM, với 1 từ 8 bit thì có một hàng DQM

 /RAS Row Address Strobe là bit điều khiển cho qua địa chỉ hàng

 /CAS Column Address Strobe bit điều khiển cho qua địa chỉ cột

 /WE Write enable cho phép ghi

Các tín hiệu /RAS, /CAS, /WE dùng để lựa chọn 1 trong 8 lệnh Nói chung thì

dùng để phân biệt các lệnh đọc, ghi

SDRAM bên trong được chia thành trong 2 hay 4 dải (Bank) dữ liệu nội độc lập bên trong Một hoặc hai địa chỉ vào của dải (Bank) BA0 và BA1 sẽ lựa chọn Bank

mà lệnh tác động đến

Phần lớn các lệnh đều sử dụng địa chỉ được đưa vào ngõ vào địa chỉ Nhưng

có một số lệnh lại không sử dụng chúng, hay chỉ biểu diễn một địa chỉ cột, vì vậy ta

sử dụng A[10] để lựa chọn những phương án

Trang 13

là đóng hàng lại

Active (kích hoạt):

mở một hàng với lệnh Read và Write

Precharge (nạp lại): Ngưng hoạt động hàng hiện hành của bank (dải) được chọn

L L H L X H X

Precharge all (nạp lại toàn bộ): Ngưng hoạt động hàng hiện hành của tất

cả các bank (dải)

L L L H X X X

Auto refresh (tự động làm tươi): làm tươi từng hàng của từng bank, sử dụng bộ đếm nội Tất cả các dải phải được nạp lại

Lode mode register (chế độ nạp các thanh ghi): A[9:0] được nạp để cấu hình chip DRAM

Trang 14

Trong đó quan trọng nhất là ngầm định CAS (2 hoặc

3 chu kỳ) và chiều dài khối (1, 2, 4, hoặc 8 chu kỳ)

Sự tương tác các tín hiệu điều khiển SDRAM:

Không có lệnh nào luôn được cho phép:

Lệnh chế độ nạp các thanh ghi (load mode register command) yêu cầu tất cả các dải (Bank) ở trạng thái IDE, và phải trì hoãn về sau cho sự thay đổi để tác động

Lệnh tự động làm tươi (auto refresh command) thì yêu cầu tất cả các dải (Bank) ở trạng thái IDE, và mất 1 khoảng thời gian làm tươi để đưa Chip về trạng thái IDE: thường là trcd + trp

Chỉ có những lệnh khác thì cho phép trên một Bank IDE là các lệnh kích hoạt Cần phải mất trcd trước khi hàng được mở hoàn toàn và chấp nhận một lệnh đọc hay ghi

Khi một dải (Bank) được mở thì có 4 lệnh được cho phép: đọc, ghi, kết thúc truyền khối (Burst terminal), nạp lại (precharge) Lệnh đọc, ghi bắt đầu truyền khối và

có thể bị ngắt bởi những ngắt sau:

Ngắt một đọc khối dữ liệu:

Sau một lệnh đọc thì bất cứ lúc nào cũng có thể có một trong các lệnh: đọc, kết thúc truyền khối, hoặc là nạp được phát ra Và sẽ ngắt đọc khối này nếu có một ngầm định CAS được cấu hình Nếu có 1 lệnh đọc ở thời điểm 0, 1 lệnh đọc khác ở chu kỳ 2, ngầm định CAS ở chu kỳ 3 thì lệnh đọc đầu tiên sẽ truyền khối dữ liệu ra ngoài ở chu kỳ 3 và 4, và kết quả của lệnh đọc thứ 2 sẽ bắt đầu xuất hiện ở chu kỳ 5

Nếu lệnh ở chu kỳ 2 là kết thúc truyền khối hoặc là nạp lại Bank kích hoạt thì không có dữ liệu ra ở chu kỳ 5

Mặc dù việc ngắt lệnh đọc có thể xuất hiện ở một Bank bất kỳ , nhưng lệnh nạp lại chỉ ngắt việc đọc khối nếu nó tác động trên cùng một Bank hoặc tất cả các Bank, nếu lệnh này hướng đến một Bank khác thì việc đọc khối vẫn tiếp tục

Sự ngắt đọc tạo ra bởi một lệnh ghi thì cũng có thể nhưng sẽ khó khăn hơn Thực hiên điều này nhờ vào một tín hiệu DQM để khống chế ngõ ra của SDRAM, vì vậy trong khoảng thời gian này, chíp điều khiển bộ nhớ có thể lái dữ liệu đi qua chân

DQ để ghi vào SDRAM Vì tác động của DQM trên lệnh đọc thì bị trì hoãn 2 chu kỳ

Trang 15

trong khi đối với lệnh đọc thì ngay lập tức, nên DQM phải lên mức cao (raised) sớm hơn 2 chu kỳ trước khi có lệnh ghi

Để thực hiện điều này trong 2 chu kỳ thì yêu cầu định vị thời điểm SDRAM tắt ngõ ra tại 1 cạnh lên xung Clock và thời điểm dữ liệu được cung cấp (cho lệnh ghi ) như ngõ vào của SDRAM ở cạnh tiếp theo của Clock

Một ngắt ghi khối dữ liệu:

Bất kỳ lệnh đọc, ghi, hay kết thúc truyền tới một Bank bất kỳ sẽ kết thúc (dừng) việc ghi khối ngay lập tức, dữ liệu trên chân DQ khi lệnh thứ 2 được phát thì chỉ do lệnh này sử dụng

Ngắt ghi khối với lệnh precharge (đến cung một Bank) thì khá phức tạp Đó là thời gian viết nhỏ nhất, twr phải được lướt qua giữa tác vụ ghi sau cùng tới 1 Bank (chu kỳ không bị che (unmasked) cuối cùng của ghi khối) với lệnh precharge kế tiếp,

vì vậy một ghi khối sẽ bị dừng (hủy) bởi lệnh tích nạp (pre-charge) nếu có đủ chu kỳ kéo dài được che đi (dùng DQM) để tạo twr cần thiết Một lệnh ghi với sự tích nạp tự động chứa đựng một trì hoãn tự động

Ngắt một lệnh tích nạp tự động:

Việc xử lý sự gián đoạn của thao tác đọc, ghi với chế độ tích nạp tự động là một đặc tính lựa chọn của SDRAM, và được hỗ trợ rất nhiều Nếu được sử dụng, sự tích nạp hay thời gian chờ twr theo sau bởi sự tích nạp (sau khi đọc) bắt đầu cùng một chu kỳ như một lệnh ngắt

Sắp xếp truyền khối SDRAM:

Một bộ vi xử lý hiện đại có bộ đệm nói chung sẽ truy nhập bộ nhớ trong những đơn vị của line bộ đệm Ví dụ để truyền 64 byte, line bộ đệm yêu cầu 8 sự truy cập liên tiếp tới một DIMM (dual in-line memory module: module nhớ có hai hàng chân) 64bit, mà toàn bộ có thể được kích khởi bởi một lệnh đơn đọc hay ghi tùy vào

sự cấu hình các chíp SDRAM

Sự truy cập line đệm điển hình được kích khởi bởi một sự đọc từ một địa chỉ đặc biệt, và SDRAM cho phép " từ có tính chất quyết định " của line đệm sẽ được truyền đầu tiên ("từ " ở đây có nghĩa là chiều rộng (của) chíp SDRAM hay DIMM,

64 bít với một DIMM tiêu biểu)

Chíp SDRAM hỗ trợ hai giao thức để sắp xếp các từ còn lại trong line đệm:

- Chế độ truyền khối đan xen: làm cho các tính toán của con người thêm phức tạp nhưng lại dễ dàng tổng hợp phần cứng hơn và được ưu tiên với các bộ vi xử

lý Intel Ta không sử dụng kiểu truyền này

Trang 16

- Chế độ truyền khối tuần tự: những từ trễ hơn được truy cập trong việc tăng dần địa chỉ, khi kết thúc thì quay trở lại điểm bắt đầu khối Chẳng hạn, với một tuyền khối có chiều dài là 4, và địa chỉ cột được yêu cầu là 5, những từ sẽ truy cập theo thứ

tự 5-6-7-4 Nếu chiều dài truyền khối là 8, thứ tự truy cập là 5-6-7-0-1-2-3-4 Điều này được thực hiện bởi việc thêm một bộ đếm địa chỉ cột, và bỏ qua số nhớ khi đi hết khối

Ta có thể lựa chọn chiều dài khối và kiểu truy cập khối bằng cách sử dụng chế

độ thanh ghi được mô tả phần tiếp theo

Chế độ thanh ghi của SDRAM:

Tốc độ dữ liệu đơn SDRAM có một chế độ thanh ghi 10 bít đơn lập trình được Sau đó chuẩn SDRAM tốc độ dữ liệu kép SDRAM bổ sung thêm chế độ thanh ghi, định địa chỉ sử dụng những chân địa chỉ Bank Với SDR SDRAM, chân địa chỉ Bank và địa chỉ hàng A[10] và cao hơn thì được lờ đi, nhưng phải là 0 trong khi ở chế

độ ghi vào thanh ghi Trong chu kỳ của chế độ thanh ghi thì các giá trị nạp vào M[9:0] chính là các bit địa chỉ

- M[9] chế độ ghi từng khối, ở mức 0 thì ghi sử dụng chế độ và chiều dài truyền khối ở chế độ đọc, ở mức 1 thì tất cả các ghi không phải là truyền khối (định vị đơn)

- M[8:7] chế độ vận hành, muốn ở chế độ lưu trữ thì đặt giá trị 00

- M[6:4] ngầm định CAS chỉ với các giá trị hợp lệ là 010 (CL2) và 011 (CL3) Chỉ ra số chu kỳ giữa lệnh đọc và dữ liệu được gửi ra từ Chip Chip sẽ hoàn thành một giới hạn cơ bản trong nanô-giây dựa trên giá trị này; khi khởi tạo, bộ điều khiển bộ nhớ phải sử dụng kiến thức của nó về tần số xung Clock và dịch giới hạn kia thành những chu trình

- M[3] kiểu truy cập các từ trong khối : 0 thì truy cập tuần tự, 1 thì truy cập đan xen

- M[2:0]: chiều dài khối: giá trị 000, 001, 010 và 011 chỉ ra kích thước khối tương ứng là 1, 2, 4 hay 8 từ Mỗi đọc ( và viết, nếu m[9] là 0) sẽ thực hiện nhiều sự truy cập, trừ phi được gián đoạn bởi một sự dừng (hủy) truyền khối hay các lệnh khác Giá trị 111 đặc tả khối với đầy đủ hàng (full-row Burst hoặc còn gọi là full page Burst) Sự truyền khối với đầy đủ hàng chỉ được cho phép với kiểu tuần tự Đối với SDRAM IS42S16400 thì chiều dài của 1 khối ở chế độ full page Burst là 256 từ Sự truyền khối thì tiếp tục cho đến khi có ngắt

Làm tươi tự động:

Trang 17

Dùng để làm tươi lại Chip ram nhờ vào sự mở và đóng ( kích hoạt và tích nạp ) từng hàng trong từng Bank Tuy nhiên, để đơn giản hóa chíp điều khiển bộ nhớ, Chip SDRAM hỗ trợ lệnh tự động làm tươi, tức là đồng thời thực hiện thao tác này tới một hàng trong từng Bank SDRAM cũng duy trì một bộ đếm nội được lặp lại trên toàn bộ các hàng có thể Chip điều khiển bộ nhớ thì đơn giản phải phát ra đủ số lượng các lệnh làm tươi tự động (1 lệnh đối với 1 hàng ) với mỗi khoảng làm tươi (một giá trị chung là tref = 64 ms) Tất cả các Bank phải ở trạng thái IDE khi lệnh được phát

Chế độ Lover Power:

Như đã đề cập, ngõ vào cho phép xung Clock (CKE) có thể được dùng để dừng xung Clock tới SDRAM Giá trị ngõ vào CKE được xét tại từng cạnh lên của xung Clock, và nếu ở mức thấp, thì mọi cạnh lên của xung Clock tiếp theo sẽ bị bỏ qua mọi mục đích khác so với việc kiểm tra CKE

Nếu CKE xuống thấp trong khi SDRAM đang thực hiện tác vụ, thì nó đơn giản chỉ là “đóng băng lại” tại chỗ cho đến khi CKE lên mức cao

Nếu SDRAM ở trạng thái IDE ( tất cả các Bank được tích nạp, không có lệnh nào đang hoạt động) khi CKE xuống thấp, SDRAM tự động chọn chế độ power-down (tiết kiệm năng lượng), giữ năng lượng ở cực tiểu cho tới khi có cạnh lên của CKE Khoảng này thì không được dài hơn giá trị tối đa khoảng làm tươi tref, nếu không những gì bộ nhớ chứa đựng sẽ bị mất Đây là phương pháp để dừng toàn bộ xung Clock trong khoảng thời gian này để tiết kiệm năng lượng

Cuối cùng, nếu CKE ở mức thấp vào lúc một lệnh làm tươi tự động được gửi đến SDRAM, SDRAM chọn chế độ tự làm tươi ( seft-refresh mode) Tương tự Power Down, nhưng SDRAM dùng một timer nội để phát ra các chu kỳ làm tươi nội khi cần thiết Trong thời gian này thì dừng xung Clock Chế độ tự làm tươi tiêu thụ ít năng lưọng hơn so với chế độ Power Down, nhưng vẫn cho phép bộ điều khiển bộ nhớ disable toàn bộ

4 CƠ CHẾ HIỂN THỊ ẢNH LÊN MONITOR

4.1 NGUYÊN TẮC CHUNG

Để hiện thị hình ảnh ra màn hình được tích hợp thì cần phải có một bộ VGA Grenerator với các tín hiệu và cơ chế làm việc như sau:

4.1.1 VGA COLOR SIGNALS

Có 3 tín hiệu color là: red, green và blue gửi tín hiệu màu sắc (color information) đến màn hình VGA Mỗi một tín hiệu điều khiển một súng bắn điện tử

Trang 18

(electron gun) để phóng các hạt electron vẽ lên một màu cơ bản tại một điểm trên màn hình Dải của tín hiệu nằm từ từ 0V (tương ứng với màu tối hoàn toàn) và 0.7V (sáng hoàn toàn) điều khiển cường độ của mỗi thành phần màu và 3 thành phần màu kết hợp với nhau tạo lên màu của điểm ảnh (dot) hay phần tử ảnh (pixel) trên màn hình

Hình 4.1: VGA Connection

Tùy vào độ rộng A bít của tín hiệu màu ngõ vào tín mà mỗi màu analog ở ngõ

ra là một trong 2A mức với bộ chuyển đổi digital to analog A bit, 3 tín hiệu analog kết hợp với nhau tạo nên phần tử ảnh (pixel) với 2A x 2A x 2A = 23A màu khác nhau

4.1.2 VGA SIGNAL TIMING

Mỗi một ảnh (hay frame) trên màn hình hiển thị là kết hợp của h dòng, mỗi dòng có w pixel Kích thước của mỗi frame được biểu diễn w x h dưới dạng tiêu biểu gồm 640 x 480m 800 x 600, 1024 x 768 và 1280 x 1024

Hình 4.2: CRT Display Timing Example

Trang 19

Để vẽ một frame, có những mạch điện có trách nhiệm di chuyển dòng electron

từ trái sang phải và từ trên xuống dưới dọc theo màn hình gọi là deflection circuit Những mạch này yêu cầu phải có 2 tín hiệu đồng bộ để khởi động và dừng dòng electron tại đúng thời điểm để cho một dòng các điểm ảnh được vẽ dọc theo màn hình

và mỗi dòng được điền theo cơ chế từ trên xuống dưới để tạo lên một ảnh

VGA Display Timing với chế độ 640 x 480:

Ts Sync pulse time 16.7 ms 416,800 521 32µs 800

TDISP Display time 15.36 ms 384,000 480 25.6µs 640

Hai mạch tạo xung đồng bộ (pulse generation circuit) được dùng để tạo các xung đồng bộ dọc (VSYNC) và ngang (HSYNC) Bộ hirizontal sync generator có đầu

ra là tín hiệu gate một chu kì trùng khớp với sường lên của xugn đồng bộ ngang (horizontal sync pulse), tín hiệu gate này nối với tín hiệu clock – enable của bộ vertical sync generator vì thế nên clock – enable chỉ cập nhật bộ đến thời gian sau mỗi dòng pixel (line of pixels) Tín hiệu gate của vertical sync generator được dùng như tín hiệu báo kết thúc một frame, đồng thời nó cũng reset và xóa toàn bộ nội dung của pixel buffer nên bộ VGA generator luôn khởi động từ trạng thái xóa sạch hoàn toàn với mọi frame

Bộ tạo tín hiệu đồng bộ cũng tạo ra các tín hiệu horizontal và vertical blanking Khi dùng phép toán OR logic ta được tín hiệu blanking toàn cục

4.2 BỘ VGA DAC ADV7123

Kit DE2 tích hợp một bộ VGA DAC và ADV7123 với cấu trúc

Trang 20

 Hỗ trợ tín hiệu màu 10 bit ở ngõ vào, với bộ DAC 10 bit sẽ cho ra mức màu Analog ở ngõ ra, tuy nhiên trong thiết kế dữ liệu màu ta cung cấp cho ADV7181 chỉ là 8 bit nên tín hiều màu ở Analog ngõ ra có mức 3, tín hiệu analog kết hợp lại với nhau tạo nên phần tử ảnh (16 triệu) màu, 1028224

 Các tín hiệu đồng bộ là SYNC và BLANK: giá trị của SYNC thì không ảnh hưởng đến quá trình hiển thị, BLANK với giá trị 0 thì chốt các dữ liệu màu ở ngõ vào

Hình 4.3: Sơ đồ cấu trúc ADV7123

 Các chân của ở ngõ ra được nối tương ứng với các chân của cổng VGA trên KIT DE2, vì vậy để sử dụng được bộ VGA DAC này ta phải tạo ra một khối vừa cung cấp các tín hiệu BLANK, Red, Green, Blue cho ADV7123 vừa phải tạo ra 2 tín hiệu đồng bộ VSYN và HSTNC nối trực tiếp vào cổng VGA một cách đồng thời

5 SƠ LƯỢC HỆ THỐNG

5.1 SƠ ĐỒ THIẾT KẾ

Trang 21

Hình 5.1: Sơ đồ hệ thống

5.2 NGUYÊN LÝ HOẠT ĐỘNG

Khối I2C_Video_Config: với giao thức giao tiếp I2C sẽ đặt giá trị cho các thanh ghi của bộ mã hóa ADV7181 để cấu hình hoạt động cho chip mã hóa này Khối Timer trì hoãn ban đầu: Sau chuỗi khởi động, ADV7181 rơi vào thời kì không ổn định, khối sẽ phát hiện thời kì không ổn định này rồi tính toán thời điểm bắt đầu làm việc của các khối khác

Khối Disize_Horizon: Lấy ra chuỗi liên tục các pixel trong dòng dữ liệu do ADV7181B xuất ra đồng thời định lại kích thước frame ảnh từ dạng 720 x 480 sang chuẩn VGA 640 x 480

SDRAM BUFFER: Nhận dữ liệu và tính hiệu điều khiển ghi từ khối Disize_Horizon để ghi giá trị các pixel vào SDRAM, đồng thời cũng nhận tín hiệu từ VGA controller để điều khiển việc xuất dữ liệu, địa chỉ phù hợp (xuất xen kẽ các line thuộc Odd field và Even field)

Khối xử lý ảnh YUV: xử lý dữ liệu ảnh nhận được từ SDRAM BUFFER rồi xuất ra dữ liệu ảnh cho khối Convert YUV to RGB

Khối ConvertYUVtoRGB: ADV718B xuất ra ảnh video dạng YUV, để có thể hiện thị lênh VGA thì trước tiên chuyển đổi thành dạng RGB

Khối VGA_Controller: Nhận dữ liệu ảnh RGB từ khối ConvertYUVtoRGB để xuất dữ liệu và tín hiệu đồng bộ cho video DAC7123, đồng thời cũng phát ra các tín hiệu điều khiển SDRAM_BUFFER để xuất dữ liệu từ SDRAM

Trang 22

6 KHỐI I2C_VIDEO_CONFIG

6.1 SƠ ĐỒ KHỐI

Hình 6.1: Sơ đồ khối I2C_Video_Config

ICLK Xung Clock 50MHz từ kit DE2

RESET Tín hiệu Reset hệ thống

I2C_SCLK Ngõ ra chứa xung Clock cung cấp cho ADV7181B

I2C_DATA Port 2 chiều để cấu hình các giá trị thanh ghi của ADV7181B

Hình 6.2: Dạng sóng để truyền dữ liệu và cấu trúc ghi với giao thức I2C

6.2 MÔ TẢ

Vai trò của khối chỉ là ghi giá trị vào các thanh ghi của ADV7181B nên có thể chọn xung clock làm việc của khối là 20KHz nhờ vào bộ chia tần số 50MHz Địa chỉ Slaver của ADV7181B là 40h nên ta sử dụng cách gán mI2C_DATA là kiểu dữ liệu cần truyền trên Bus và LUT_DATA chứa địa chỉ của thanh ghi và giá trị cần nạp

Khi reset, bắt đầu cấu hình lại cho ADV7181B bằng cách xóa giá trị các bộ đếm và cờ Sau đó để nạp giá trị cho các thanh ghi ta sử dụng máy trạng thái sau:

Trang 23

always@(posedge mI2C_CTRL_CLK or negedge iRST_N) begin

//LUT_SIZE là số lần nạp giá trị cho các thanh ghi cần thiết

//LUT_INDEX là biến đếm để ánh xạ đến địa chỉ của các thanh ghi và giá trị cần nạp

begin case(mSetup_ST)

Trang 24

//tăng LUT_INDEX lên 1 để nhảy đến thay ghi mới rồi quay về trạng thái 0

case(LUX_INDEX):

27: LUT_DATA <= 16’h0050;

Để AVD7181B có thể phát hiện chuẩn video NTSC thì ta sẽ nạp các giá trị cho các thanh ghi theo bảng giá trị cài đặt ở phần mô tả ADV7181B Tuy nhiên khi truyền chuỗi này trên bus ta cần phải thêm các bit đồng bộ: 1 bit cho trạng thái IDE, 2 bit để thiết lặp cờ START, 3 bit để chờ ACK cho ADV xác nhận, 3 bit để thiết lặp cờ STOP và báo kết thúc chuỗi, vì vậy thực sự chuỗi dài 33 bit:

Trang 25

//thả nổi đường truyền nhập để ACK từ ADV7181B qua port 2 chiều I2C_DATA

//giá trị cần ghi vào thanh ghi

//thiết lặp cờ STOP và báo kết thúc chuỗi

6’d30 : begin SDO=1’b0; SCLK=1’b0; ACK3=I2C_SDAT;end

wire I2C_SCLK = SCLK | (((SD_COUTER>=4) &

(SD_COUTER<=30))? ~CLOCK : 0 );

wire ACK=ACK1 | ACK2 | ACK3;

// khi xét xác nhận đã nạp xong thanh ghi ta sử dụng giá trị bù của //ACK (tích cực mức thấp), chỉ xác nhận khi có đủ 3 xác nhận ACK1, //ACK2, ACK3

Và dạng sóng thu được trên chân I2C_SCLK như sau (END từ 0 lên 1 chỉ ra rằng đã nạp xong giá trị cho một thanh ghi):

Trang 26

Hình 6.4: dạng sóng mô phỏng trên chân I2C_SCLK

7 KHỐI TIMER TRÌ HOÃN BAN ĐẦU

7.1 SƠ ĐỒ KHỐI

Hình 7.1: Sơ đồ của khối timer trì hoãn ban đầu

ICLK Xung clock 50Mhz từ kit DE2

VS Tín hiệu VS (Vertical Sync) từ ADV7181B

HS Tín hiệu HS (Horizontal Sync) từ ADV7181B

TD_Stable Báo hiệu ADV7181b đã hoạt động ổn định

RST0, RST1, RST3 Ngõ ra cho phép các khối khác bắt đầu làm việc

7.2 MÔ TẢ

Với cấu hình đã cài đặt ở phần trước, khi đã hoạt động ổn định, dạng sóng do ADV7181B phát ra như sau:

Hình 7.2: Mô tả dạng sóng ADV7181B

Trang 27

Vì vậy để phát hiện xem chip mã hóa này đã hoạt động ổn định hay chưa khối TD_DETEC tiến hành kiểm tra điều kiện: VS ở mức cao trong 9 chu kỳ liên tiếp của

HS rồi chuyển xuống mức thấp, nếu thỏa mãn thì đưa TD_Stable lên mức cao Khi tín hiệu TD_Stable lên mức cao, khối RESET_DELAY bắt đầu đếm lên theo xung nhịp của ICLK (50MHz) để tính thời điểm xuất ra mức 1 trên các chân RST0, RST1, RST2 Các tín hiệu này dùng để khởi động các khối khác theo trình tự như sau:

a) Ban đầu xóa tất cả dữ liệu trong các khối

b) Tính từ thời điểm TD_Stable lên 1 (đơn vị là chu kỳ clock 27MHz)

- Sau 1132461.5: tích cực RST0 để kích hoạt khối SDRAM BUFFER

- Sau 1698692.5: tích cực RST1 để kích hoạt khối Desize Horizon

- Sau 2264923.5: tích cực RST2 để kích hoạt khối xử lý ảnh YUV và VGA controller

c) Giữ nguyên giá trị ngõ ra cho đến khi có tín hiệu RESET hệ thống thì lặp lại

 Điểm cần chú ý ở đây là khi Desize Horizon hoạt động thì sẽ xuất DATA_VALID cho phép ghi dữ liệu vào SDRAM BUFFER Rồi phải chờ một khoảng thời gian để ghi đủ số liệu cần thiết mới kích hoạt VGA Controller để xuất dữ liệu từ SDRAM BUFFER Như ta đã biết một frame ảnh do ADV7181B xuất ra bao gồm 900900 byte (525 line, mỗi line có 1716 byte) hay để truyền hết một frame sẽ mất 900900 chu kỳ Do xung clock trên chân LLC để truyền các byte là 27MHz nên

ta kiểm tra lại các thời điểm này như sau:

- Lấy gốc thời gian là khi bắt đầu frame đầu tiên

- TD_Stable lên 1 khi Frame đầu tiên đã phát được 9 line: 9 x 1716 =

15444 chu kỳ

- Frame thứ ba được bắt đầu tại thời điểm 2 x 900900 = 1801800

- Khối Desize Horizon được kích hoạt tại thời điểm 1714136.5

(= 15444 + 1698692.5) tức là trước khi frame thứ ba bắt đầu Đảm bảo rằng khối sẽ xuất ra DATA_VALID = 1 ở toàn bộ các Active Pixel của frame thứ 3

- Khối VGA Controller được kích hoạt tại thời điểm 2280367.5(=15444 + 2264923.5) nên oRequest được xuất ra tại thời điểm 2315727.5(= 2280376.5 + 35360) Với 35360 chu kỳ là khoảng thời gian từ khi khối được reset cho đến khi oRequest lên 1 Vậy việc đọc từ SDRAM BUFFER được kích hoạt khi frame thứ 3 đã bắt đầu được một khoảng thời gian là 513927.5(= 2315727.5 – 1801800) Điều này

Trang 28

đảm bảo cho việc xuất ra đúng từng frame từ SDRAM BUFFER mà ta sẽ đề cập kỹ hơn ở phần mô tả SDRAM BUFFER

TD_DATA[7:0] Dữ liệu hình ảnh từ ADV7181B

ACLR Tín hiệu xóa bất đồng bộ do khối Timer trì hoãn cung cấp

CLK Xung clock 27MHz từ chân TD_CLK của ADV7181B

Ngày đăng: 11/09/2015, 00:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Stuart Sutherland, Simon Davidmann, Peter Flake, System Verilog for Design Khác
[2]. DAVID R. SMITH, PAUL D. FRANZON, verilog styles for Synthesis of Digital Systems Khác
[3]. D. Vanden Bout, VGA Generator for the XSA Boards, XESS Corporation, October 12, 2004 Khác
[4]. J. BHASKER, A Verilog HDL Primer Khác
[5]. T. R. PADMANABHAN, B. BALA TRIPURA SUNDARI, Design Through Verilog HDL Khác
[6]. FPGA Design with Verilog Khác
[7]. Peter J. Ashenden, Digital Design Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w