Tóm Tắt Nội Dung Khóa Luận
Máy hiển thị sóng hay cịn gọi là máy dao động số có nhớ (DSO) là một thiết bị
không thể thiếu trong đo lường điều khiển. Cùng với sự phát triển của khoa khọc công
nghệ mà ngày nay chúng ta có những máy hiện sóng có tính năng rất phong phú và
kích thước cũng được giảm xuống đáng kể, bớt cồng kềnh và đặc biệt giá thành lại hạ
xuống rất nhiều. Ngày nay công nghệ sản xuất FPGA rất phát triển nên khóa luận này
em xin trình bày về cách thiết kế một máy dao động số có nhớ dựa trên cơng nghệ
FPGA.
Khóa luận được chia làm hai phần: Phần lý thuyết em xin trình bày một cách
tổng quan nhất về công nghệ FPGA, giới thiệu sơ qua về các bước thực hiện trong
FPGA. Phần thứ hai em xin trình bày về các loại máy dao động số có nhớ, cấu tạo và
nguyên tắc hoạt động của máy dao động tương tự và máy dao động số có nhớ. Cuối
cùng là phần em trình bày về các bước thiết kế một máy dao động số trên FPGA và
một số kết quá thu được.
i
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Mục lục
Mở đầu........................................................................................................................................1
Chương 1.....................................................................................................................................2
TỔNG QUAN VỀ FPGA.........................................................................................................2
1.1 FPGA LÀ GÌ?.................................................................................................................2
1.2. LỊCH SỬ RA ĐỜI FPGA...............................................................................................3
1.3. ỨNG DỤNG...................................................................................................................3
1.4. CẤU TRÚC MỘT FPGA...............................................................................................4
1.4.1 Khối logic FPGA......................................................................................................4
1.4.2 Các phần tử tích hợp sẵn...........................................................................................5
1.4.3 Quy trình thiết kế FPGA tổng quát...........................................................................5
1.4.3.1 Mô tả ban đầu về thiết kế...................................................................................6
1.4.3.2 Thực thi.............................................................................................................8
1.4.3.3 Quá trình Nạp (download) và lập trình (program)........................................10
1.5 TỔNG QUAN VỀ VHDL..............................................................................................10
1.5.1 Giới thiệu về ngôn ngữ mô tả phần cứng VHDL....................................................10
1.5.2 Cấu trúc một mơ hình hệ thống mơ tả bằng VHDL................................................12
1.5.2.1 Thực thế (entity) của mơ hình .........................................................................12
1.5.2.2 Kiến trúc của mơ hình.....................................................................................13
TỔNG QUAN VỀ OSCILLOSCOP........................................................................................14
2.1 . DAO ĐỘNG KÍ ĐIỆN TỬ...........................................................................................14
2.2 PHÂN LOẠI OSCILLOSCOP......................................................................................15
2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ TƯƠNG TỰ......................................16
2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ SỐ.......................................................17
CÁC BƯỚC THIẾT KẾ MỘT OSCILLOSCOP SỐ CÓ NHỚ...............................................22
3.1 CÁC THÀNH PHẦN TRONG THIẾT KẾ...................................................................23
3.1.1.Bộ nhớ.....................................................................................................................23
3.1.2 Bộ biến đổi tương tự - số ADC..............................................................................25
.......................................................................................................................................... 25
3.1.3 Bộ khuếch đại đệm .................................................................................................27
3.1.4 Điều khiển logic......................................................................................................29
3.2 THIẾT KẾ CHI TIẾT....................................................................................................32
3.2.1 Cấu hình để nạp vào FPGA....................................................................................32
3.2.2 Chế độ tiền trigger...................................................................................................33
3.2.3 Dò điểm trigger.......................................................................................................34
3.3.4 Bộ tạo xung.............................................................................................................36
3.3.6 Giao diện logic cổng song song..............................................................................37
3.3.7 Điều khiển ADC .....................................................................................................38
Chương 4...................................................................................................................................39
CHƯƠNG TRÌNH VÀ MƠ PHỎNG TRÊN KIT DE2...........................................................39
4.1 TỔNG QUAN VỀ KIT DE2 VÀ CHIP CYCLONE II.................................................39
Nguyễn Văn Thông K49ĐB ii
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
4.2 CHƯƠNG TRÌNH VÀ MƠ PHỎNG............................................................................44
4.2.1. Chương trình chính điểu khiển DSO......................................................................44
4.2.2 Chương trình điểu khiển logic cổng song song.......................................................46
4.2.3 Chương trình điểu khiển FIFO................................................................................47
4.2.4 Chương trình tạo dạng xung chia theo tỉ lệ 1/2, 1/4, 1/8, 1/16, 1/32......................49
4.2.4 Chương trình dò điểm trigger..................................................................................50
.......................................................................................................................................... 50
Kết luận.....................................................................................................................................52
PHỤ LỤC..................................................................................................................................53
Tài liệu tham khảo.....................................................................................................................70
Nguyễn Văn Thông K49ĐB iii
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
CÁC TỪ VIẾT TẮT
ADC : Analog -to- Digital Converter
ASIC : Application-Specific Integrated Circuit
CPLD : Complex Programmable Logic Device
DAC : Digital-to-Analog Converter
DRAM : Dynamic Random Access Memory .
DSO : Digital Storage Oscilloscop
DSP : Digital Signal Processing.
E2 : EEPROM.
EEPROM : Electrically Erasable Programmable Read-Only
Memory.
FIFO : First In First Out
FPGA : Field-Programmable Gate Array
HDL : Hardware Description Language
I/O : Input/Output
LAB : Logic Array Block.
LE : logic Element.
LUT : Look Up Table
MAC : Multication and accumulation
PC : Personal Computer
PLA : Programmable Logic Array
RAM : Random Access Memory
ROM : Read-Only Memory
SPLD : Simple Programable Devices.
SRAM : Static Random Access Memory.
Nguyễn Văn Thông K49ĐB iv
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
VHDL : VHSIC hardware description language
VHSIC : Very High Speed Itergrated Circuit
WCLK : Write Clock.
WE : Write Enable.
WRST : Write Reset.
Nguyễn Văn Thông K49ĐB v
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Lời cảm ơn
Lời đầu tiên em xin gửi lời cảm ơn đến tồn thể các thầy, cơ giáo khoa Điện tử -
Viễn thông trường Đại học Công Nghệ- ĐHQG Hà Nội, những người đã tận tình dạy
dỗ, chỉ bảo em trong suốt bốn năm học vừa qua tại nhà trường.
Tiếp theo em xin gửi lời cảm ơn sâu sắc đến TS Nguyễn Thăng Long và
CN Phan Văn Minh , những người đã trực tiếp hướng dẫn em trong suốt quá trình học
tập và nghiên cứu tại trường, các thầy đã truyền cho em cách tư duy có hệ thống,
phương pháp nghiên cứu, tiếp cận thực tế - những điều rất quý báu với em khi ra
trường làm việc thực tế.
Em xin cảm ơn tới toàn thể cán bộ bộ môn Vi cơ điện tử - vi hệ thống những
người đã dẫn dắt và định hướng nghiên cứu cho em trong suốt hai năm qua.
Em xin gửi lời cảm ơn tới Ths. Nguyễn Kiêm Hùng cùng toàn thể cán bộ làm
việc trong phịng ” các hệ thống tích hợp thơng minh” đã chỉ bào và tạo điện kiện cho
em trong suốt q trình học tập và nghiên cứu FPGA trong phịng.
Em xin tỏ lòng biết ơn chân thành tới cha mẹ, gia đình em những người đã sinh
thành, nuôi nấng, tin tưởng động viên em. Xin gửi lời cảm ơn tới tất cả bạn bè, đặc biệt
là tập thể lớp K49ĐB, những người đã cổ vũ, động viên, chia sẻ với em trong suốt
những năm qua.
Hà nội, ngày 27 tháng 5 năm 2008
Sinh viên thực hiện
Nguyễn Văn Thông
Nguyễn Văn Thông K49ĐB vi
Mở đầu
Dao động kí (Oscilloscop) là một thiết bị đo lường điện tử phổ biến nhất hiện
nay, không giống như các loại máy đo khác chỉ cho ta các thơng số của tín hiệu,
Oscilloscop cịn cho phép ta quan sát tức thời dạng của tín hiệu. Nhiệm vụ chính của
một Oscilloscop là hiển thị một cách thật chính xác, chi tiết dạng tín hiệu dưới dạng
hàm số của điện áp và thời gian. Ngồi ra một nhiệm vụ khơng kém phần quan trọng
khác của oscilloscop là so sánh các dạng sóng khác nhau và đo lường mối quan hệ về
thời gian và pha giữa chúng.
Có thể nói q trình phát triển của oscillscop gắn liền với quá trình phát triển của
kĩ thuật điện tử. Mở đầu là oscilloscop tương tự, một vài thập niên gần đây là
oscilloscop số, gần đây nhất là một số công ty đo lường hàng đầu thế giới vừa cho ra
đời oscilloscop hỗn hợp giữa số và tương tự được tính hợp với các tính năng mạnh mẽ
nhất thừa hưởng từ ngành cơng nghiệp máy tính.
Thế kỉ 21 là thế kỉ của thông tin và kĩ thuật số với sự phát triển và ứng dụng rộng
rãi của các bộ vi xử lý. Bằng việc đưa sức mạnh kĩ thuật số vào thực tiễn, các bộ vi xử
lý ngày một thay đổi cách sống của xã hội lồi người. Khóa điện tử, máy điện thoại,
nồi cơm điện…..của chúng ta đang ngày một thông minh hơn, mạnh mẽ và nhanh nhờ
các bộ vi xử lý. Tất cả các ngành công nghiệp lớn như: viễn thông, điều khiển công
nghiệp, sản xuất hàng tiêu dùng… đều ý thức được và sử dụng triệt để công nghệ mới
và họ cũng vấp phải những vần đề mới cần giải quyết đó là các vấn đề liên quan tới
tín hiệu và điều khiển số và tương tự của thế giới thực. Oscilloscop với vai trò là một
thiết bị giám sát, đo kiểm phải đáp ứng được các yêu cầu ngày càng khắt khe do các
ngành công nghiệp này đắt ra.
Với mục đích là tìm hiểu và thiết kế một oscilloscop số, khóa luận này trình bày
và phân tính cấu tạo, ngun lí hoạt động của các loại oscilloscop, các tính năng tiến
tiến của chúng, đặc biệt là cách thiết kế một oscilloscop kĩ thuật số có nhớ dùng chip
FPGA làm trung tâm điều khiển.
1
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Chương 1
TỔNG QUAN VỀ FPGA
1.1 FPGA LÀ GÌ?
FPGA (Field-Programmable Gate Array) là vi mạch dùng cấu trúc mảng phần tử
logic mà người dùng có thể lập trình được. Vi mạch FPGA được cấu thành từ các bộ
phận:
Các khối logic cơ bản lập trình được (logic block)
Hệ thống mạch liên kết lập trình được
Khối vào/ra (IO Pads)
Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý...
So sánh FPGA với ASIC và các vi mạch bán dẫn khác:
ASIC (Application-Specific Integrated Circuit) là một vi mạch IC được thiết kế
dành cho một ứng dụng cụ thể.
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng
nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện
logic thì FPGA khơng đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong
khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ
có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí
giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng.
Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc
mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm:
Tác vụ tái lập trình của FPGA thực hiện đơn giản hơn.
Khả năng lập trình linh động hơn
Kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng
logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó.
Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô
tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như
Nguyễn Văn Thông K49ĐB 2
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho q trình
thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như
Synopsys, Synplify... Các gói phần mềm này có khả năng thực hiện tất cả các bước
của tồn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là
mã RTL).
1.2. LỊCH SỬ RA ĐỜI FPGA
FPGA được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công ty Xilinx
vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tương đối lớn các
phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD. FPGA có khả năng
chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLD chỉ chứa từ 10.000
đến 100.000 cổng logic; con số này đối với PAL, PLA cịn thấp hơn nữa chỉ đạt vài
nghìn đến 10.000.
CPLD được cấu trúc từ số lượng nhất định các khối SPLD (Simple programable
devices, thuật ngữ chung chỉ PAL, PLA). SPLD thường là một mảng logic AND/OR
lập trình được có kích thước xác định và chứa một số lượng hạn chế các phần tử nhớ
đồng bộ (clocked register). Cấu trúc này hạn chế khả năng thực hiện những hàm phức
tạp và thông thường hiệu suất làm việc của vi mạch phụ thuộc vào cấu trúc cụ thể của
vi mạch hơn là vào yêu cầu bài toán.
Kiến trúc của FPGA là kiến trúc mảng các khối logic, khối logic, nhỏ hơn nhiều
nếu đem so sánh với một khối SPLD, ưu điểm này giúp FPGA có thể chứa nhiều hơn
các phần tử logic và phát huy tối đa khả năng lập trình của các phần tử logic và hệ
thống mạch kết nối, để đạt được mục đích này thì kiến trúc của FPGA phức tạp hơn
nhiều so với CPLD.
Một điểm khác biệt với CPLD là trong những FPGA hiện đại được tích hợp
nhiều những bộ logic số học đã sơ bộ tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao, hay
các bộ nhân cộng (multication and accumulation, MAC), thuật ngữ tiếng Anh là DSP
slice dùng cho những ứng dụng xử lý tín hiệu số DSP.
Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hộ trợ
tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khi vẫn đảm
bảo hoạt động bình thường cho các bộ phận khác.
1.3. ỨNG DỤNG
Nguyễn Văn Thông K49ĐB 3
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng khơng,
vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệ thống điều
khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mơ hình
phần cứng máy tính...
Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp
những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngồi ra
nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài tốn địi hỏi khối
lượng tính tốn lớn và dùng trong các hệ thống làm việc theo thời gian thực.
1.4. CẤU TRÚC MỘT FPGA
Cấu trúc tổng thể của một FPGA được minh họa ở hình sau.
Hình 1: Cấu trúc tổng thế một FPGA
1.4.1 Khối logic FPGA
Hình 2: Khối logic FPGA
Phần tử chính của FPGA là các khối logic (logic block). Khối logic được cấu
thành từ LUT và một phần tử nhớ đồng bộ flip-flop.
Nguyễn Văn Thông K49ĐB 4
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
LUT (Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4 đầu
vào, kêt quả của hàm này tùy vào mục đích mà gửi ra ngồi khối logic trực tiếp hay
thơng qua phần tử nhớ flip-flop.
Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngồi 4 đầu vào kể trên cịn hỗ trợ
thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng số đầu
vào của LUT lên 6 chân. Cấu trúc này là nhằm tăng tốc các bộ số học logic.
Hệ thống mạch liên kết là khối chuyển mạch của FPGA Mạng liên kết trong
FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứng, tùy theo từng
loại FPGA mà các đường kết nối được chia thành các nhóm khác nhau, ví dụ trong XC4000
của Xilinx có 3 loại kết nối: ngắn, dài và rất dài. Các đường kết nối được nối với nhau thông
qua các khối chuyển mạch lập trình được (programable switch), trong một khối chuyển
mạch chứa một số lượng nút chuyển lập trình được đảm bảo cho các dạng liên kết phức tạp
khác nhau.
1.4.2 Các phần tử tích hợp sẵn
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích
hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dịng Virtex 4,5 của
Xilinx có chứa nhân sử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…,
hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP
Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dịng Virtex của Xilinx
chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
1.4.3 Quy trình thiết kế FPGA tổng quát.
Nguyễn Văn Thông K49ĐB 5
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Hình 3: Quy trình thiết kế FPGA
1.4.3.1 Mô tả ban đầu về thiết kế
Khi xây dựng một chip khả trình (FPGA) với ý nghĩa dành cho một ứng dụng
riêng biệt, vì xuất phát từ mỗi ứng dụng trong thực tiễn cuộc sống, sẽ đặt ra yêu cầu
phải thiết kế IC thực hiện tối ưu nhất những ứng dụng đó. Bước đầu tiên của quy trình
thiết kế này có nhiệm vụ tiếp nhận các u cầu của thiết kế và xây dựng nên kiến trúc
tổng quát của thiết kế.
* Mô tả thiết kế: Trong bước này, từ những yêu cầu của thiết kế và dựa trên khả
năng của công nghệ hiện có, người thiết kế kiến trúc sẽ xây dựng nên toàn bộ kiến trúc
tổng quan cho thiết kế. Nghĩa là trong bước này người thiết kế kiến trúc phải mô tả
được những vấn đề sau:
Thiết kế có những khối nào?
Mỗi khối có chức năng gì?
Hoạt động của thiết kế và của mỗi khối ra sao ?
Nguyễn Văn Thông K49ĐB 6
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Phân tích các kỹ thuật sử dụng trong thiết kế và các công cụ, phần mềm
hỗ trợ thiết kế.
Một thiết kế có thể được mơ tả sử dụng ngơn ngữ mô tả phần cứng, như VHDL
hay Verilog HDL hoặc có thể mơ tả qua bản vẽ mạch (schematic capture). Một thiết kế
có thể vừa bao gồm bản vẽ mạch mơ tả sơ đồ khối chung, vừa có thể dùng ngôn ngữ
HDL để mô tả chi tiết cho các khối trong sơ đồ.
* Mô phỏng chức năng (Function simulation): sau khi mô tả thiết kế, người thiết
kế cần mô phỏng tổng thể thiết kế về mặt chức năng để kiểm tra thiết kế có hoạt động
đúng với các chức năng yêu cầu.
* Tổng hợp logic (Logic Synthesis): tổng hợp logic là q trình tổng hợp các mơ
tả thiết kế thành sơ đồ bố trí mạch (netlist). Q trình chia thành 2 bước: chuyển đổi
các mã RTL, mã HDL thành mô tả dưới dạng các biểu thức đại số Boolean và dựa trên
các biểu thức này kết hợp với thư viện tế bào chuẩn sẵn có để tổng hợp nên một thiết
kế tối ưu.
* Hiệu chỉnh các kết nối (Datapath Schematic): nhập netlist và các ràng buộc về
thời gian vào một công cụ phân tích thời gian (timing analysic). Cơng cụ phân tích này
sẽ tách rời tất cả các kết nối của thiết kế, tính thời gian trễ của các kết nối dựa trên các
ràng buộc. Dựa trên kết quả phân tích (report) của cơng cụ phân tích, xác định các kết
nối khơng thỏa mãn về thời gian. Tùy theo nguyên nhân dẫn đến khơng thỏa mãn mà
ta có thể viết lại mã và tiến hành lại tổng hợp logic hoặc hiệu chỉnh lại các ràng buộc.
Hình 4: Logic Synthesis
Nguyễn Văn Thông K49ĐB 7
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
1.4.3.2 Thực thi
Ta đã có sơ đồ bố trí netlist mơ tả tổng thể thiết kế tại mức cổng (chỉ gồm các
cổng logic cơ bản và các mạch logic khác như: MUX). Quá trình này sẽ đặt sơ đồ
netlist này lên chip, gọi là quá trình thực thi (Device Implementation).
Quá trình gồm các bước:
* Ánh xạ (mapping hay còn gọi fitting - ăn khớp): chuẩn bị dữ liệu đầu vào, xác
định kích thước các khối. Các khối này sẽ phải phù hợp với cấu trúc của 1 tế bào cơ
bản của FPGA (gồm nhiều cổng logic) và đặt chúng vào các vị trí tối ưu cho việc chạy
dây.
Hình 5: Sơ đồ gán chân
* Đặt khối và định tuyến (Place & Route):
Đặt khối: đặt các khối ánh xạ vào các tế bào (cell) ở vị trí tối ưu cho việc
chạy dây.
Nguyễn Văn Thông K49ĐB 8
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Placing
Hình 6: Sơ đồ không gian gán bên trong FPGA
Định tuyến: bước này thực hiện việc nối dây các tế bào.
Routin
Hình 7: Sơ đồ định tuyến
Để thực hiện việc này, chúng ta cần có các thông tin sau:
Nguyễn Văn Thông K49ĐB 9 Program
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Các thông tin vật lý về thư viện tế bào, ví dụ kích thước tế bào,
các điểm để kết nối, định thời, các trở ngại trong khi đi dây.
Một netlist được tổng hợp sẽ chỉ ra chi tiết các instance và mối
quan hệ kết nối bao gồm cả các đường dẫn bị hạn chế trong thiết kế.
Tất cả các yêu cầu của tiến trình cho các lớp kết nối, bao gồm các
luật thiết kế cho các lớp chạy dây, trở kháng và điện dung, tiêu thụ năng
lượng, các luật về sự dẫn điện trong mỗi lớp.
1.4.3.3 Quá trình Nạp (download) và lập trình (program)
Sau quá trình thực hiện, thiết kế cần được nạp vào FPGA dưới dạng dòng bit (bit
stream).
Quá trình nạp thiết kế (download) vào FPGA thường nạp vào bộ nhớ bay hơi, ví
dụ như SRAM. Thơng tin cấu hình sẽ được nạp vào bộ nhớ. Dịng bit được truyền lúc
này sẽ mang thông tin định nghĩa các khối logic cũng như kết nối của thiết kế. Tuy
nhiên, lưu ý rằng, SRAM sẽ mất dữ liệu khi mất nguồn nên thiết kế sẽ không lưu được
đến phiên làm việc kế tiếp.
Lập trình (program) là thuật ngữ để mơ tả q trình nạp chương trình cho các bộ
nhớ khơng bay hơi, ví dụ như PROM. Như vậy, thơng tin cấu hình vẫn sẽ được lưu trữ
khi mất nguồn.
1.5 TỔNG QUAN VỀ VHDL
1.5.1 Giới thiệu về ngôn ngữ mô tả phần cứng VHDL
VHDL là ngơn ngữ mơ tả phần cứng cho các mạch tích hợp tốc độ cao, là một
loại ngôn ngữ mô tả phần cứng được phát triển cho chương trình VHSIC ( Very High
Speed Itergrated Circuit) của bộ quốc phòng Mỹ. Mục tiêu của việc phát triển VHDL
là có được một ngơn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất cho phép thử
nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưa các hệ thống đó
vào ứng dụng trong thực tế.
VHDL được phát triển như một ngôn ngữ độc lập không gắn với bất kỳ một
phương pháp thiết kế, một bộ mô tả hay công nghệ phần cứng nào. Người thiết kế có
thể tự do lựa chọn cơng nghệ, phương pháp thiết kế trong khi chỉ sử dụng một ngôn
ngữ duy nhất. Và khi đem so sánh với các ngôn ngữ mô phỏng phần cứng khác đã kể
ra ở trên ta thấy VHDL có một số ưu điểm hơn hẳn các ngôn ngữ khác:
Nguyễn Văn Thông K49ĐB 10
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Thứ nhất là tính cơng cộng: VHDL được phát triển dưới sự bảo trợ của
chính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE. VHDL được sự hỗ
trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ
thiết kế mô phỏng hệ thống.
Thứ hai là khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế.
VHDL cho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết
kế từ trên xuống, hay từ dưới lên dựa vào các thư viện sẵn có. VHDL cũng
hỗ trợ cho nhiều loại công cụ xây dựng mạch như sử dụng công nghệ
đồng bộ hay không đồng bộ, sử dụng ma trận lập trình được hay sử
dụng mảng ngẫu nhiên.
Thứ ba là tính độc lập với cơng nghệ: VHDL hồn tồn độc lập với cơng
nghệ chế tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức
cổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ
thuộc cơng nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng
ngay cho các hệ thống đã thiết kế.
Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của
phần cứng từ mức hệ thống số cho đến mức cổng. VHDL có khả năng mô
tả hoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp
chặt chẽ thống nhất cho mọi mức. Như thế ta có thể mơ phỏng một bản
thiết kế bao gồm cả các hệ con được mô tả chi tiết.
Thứ năm là khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được
chấp nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mơ tả đáp
ứng được tiêu chuẩn VHDL. Các kết quả mơ tả hệ thống có thể được trao
đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưng cùng
tuân theo tiêu chuẩn VHDL. Cũng như một nhóm thiết kế có thể trao đổi
mô tả mức cao của các hệ thống con trong một hệ thống lớn (trong đó các
hệ con đó được thiết kế độc lập).
Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các
thiết kế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì
vậy nó có thể được sử dụng để thiết kế một hệ thống lớn với sự tham gia
của một nhóm nhiều người. Bên trong ngơn ngữ VHDL có nhiều tính năng
Nguyễn Văn Thơng K49ĐB 11
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. Và nó cũng cho phép
dùng lại các phần đã có sẵn.
1.5.2 Cấu trúc một mơ hình hệ thống mơ tả bằng VHDL
Thơng thường một mơ hình VHDL bao gồm ba phần: thực thể, kiến trúc và các
cấu hình. Đơi khi ta xử dụng các gói( packages) và mơ hình kiểm tra hoạt động
của hệ thống( testbench).
1.5.2.1 Thực thế (entity) của mơ hình
Phần khai báo thực thể chỉ rõ TÊN của thực thể và liệt kê các lối vào và ra và có
dạng chung như sau
Entity tên_thực_thể is
Generic (khai báo generic);
Port (khai báo các tín hiệu vào ra);
End tên_thực_thể;
Một thực thể luôn bắt đầu với từ khóa entity, theo sau là tên của thực thể và từ
khóa is. Rồi đến các khai báo cổng với từ khóa port. Một thực thể ln kết thúc với từ
khóa end và tên của thực thể.
Tên thực thể là tên của thực thể do người dùng đặt.
Các tín hiệu vào ra: tên của các tín hiệu do người dung đặt, ngăn
cách với nhau bởi dấu phẩy, chỉ ra các tín hiệu nối với bên ngồi.
Các chế độ của tín hiệu khai báo trong “port”: chỉ ra chiều của tín
hiệu, có các mode sau:
- in: chỉ ra rằng tín hiệu là một tín hiệu vào.
- out: chỉ ra rằng tín hiệu là một tín hiệu ra khỏi thực thể và chỉ các thực thể
khác dùng đến tín hiệu này mới có thể đọc giá trị của nó.
- buffer: tín hiệu là tín hiệu ra và giá trị của nó có thể được đọc cả ở bên
trong thực thể.
- inout: tín hiệu có thể là tín hiệu vào hoặc tín hiệu ra.
Nguyễn Văn Thơng K49ĐB 12
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
1.5.2.2 Kiến trúc của mơ hình
Cấu trúc của nó như sau:
ARCHITECTURE tên_architecture OF tên_entity IS
[các phần khai báo:signal, component…]
BEGIN
[code]
END tên_architecture;
Trong kiến trúc mơ hình chúng ta có thể khai báo tất cả mọi thứ liên quan tới
chương trình, trong đó có các process, các chương trình con với lời gọi hàm
component, và khai báo các signal và các câu lệnh “port map” để kết nối các thành
phần con có trong kiến trúc. Nói chung cũng như ngơn ngũ C thì ở đây kiến
trúc(architecture) là thân của chương trình của ta.
Nguyễn Văn Thơng K49ĐB 13
Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Chương 2
TỔNG QUAN VỀ OSCILLOSCOP
2.1 . DAO ĐỘNG KÍ ĐIỆN TỬ
Khi đặt vấn đề chọn dùng oscilloscop có nghĩa là chọn được loại oscilloscop mà
các đặc tính kĩ thuật của nó phù hợp với các u cầu đặt ra của bài toán đo lường,
nghiên cứu, với các đặc tính và thơng số của tín hiệu hay mạch điện tử.
Những yêu cầu cơ bản mà một oscilloscop phải đáp ứng được là:
Phải có khả năng hiển thị đồng thời tín hiệu số và tín hiệu tương tự. Điều
này giúp người kĩ sư có thế giám sát được quá trình giao tiếp giữa bộ vi xử
lý với thế giới tương tự, tối ưu hóa cho cơng tác tìm và sửa lỗi.
Hình 8: Sơ đồ khối của dao động kí điện tử
Nguyễn Văn Thơng K49ĐB 14