SlideShare a Scribd company logo
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 toà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 quá 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. Ngoà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 quá 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 loà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, nguyên 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 quá 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 toà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, ngoài ra
nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối
lượng tính toá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 ngoà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ì ngoà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 yê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à quá trình tổng hợp các mô
tả thiết kế thành sơ đồ bố trí mạch (netlist). Quá 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ả quá 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 hoàn toà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ể luôn 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 ngoà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 yê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
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

         Phải lưu được một khoảng thời gian dài tín hiệu với tốc độ lấy mẫu cao,
          tốc độ cập nhật màn hình nhanh giúp người kĩ sư quan sát một cách chi
          tiết và chính xác tín hiệu- đòi hỏi phải có một bộ nhớ đủ lớn.
         Phải cung cấp các chế độ cấp phát linh hoạt, đa dạng và mạnh mẽ.

         Phải được vi tính hóa với các tính năng như : có khả năng giao tiếp với
          máy tính qua cổng RS-232 hay cổng song song.
         Phải có giao diện thân thiện với người dùng cung cấp các thao tác đơn
            giản, dễ hiểu, nhanh gọn. Có khả năng trợ giúp linh hoạt và dễ hiểu.
         Phải có độ chính xác, độ tin cậy và độ ổn định cao.



     2.2 PHÂN LOẠI OSCILLOSCOP
      Khi chỉ quan sát tín hiệu biến đổi liên tục hay tín hiệu xung với tần số lặp lại
tương đối cao, và chỉ cần các thông số chính của nó là biên độ, tần số thì có thể dùng
loại oscilloscop tương tự thông thường.
      Khi cần đo lường, quan sát đồng thời hay nhiều tín hiệu thì dùng oscilloscop
nhiều kênh để có thể trực tiếp so sánh dao động đồ của hai hay nhiều tín hiệu trên màn
hình. Với cách quan sát đo lường này cho phép ta đánh giá, so sánh các thông số đặc
tính của chúng một cách định tính song nhanh chóng và có nhận xét hiệu quả. Thường
thì các oscilloscop với cấu tạo hai hệ thống súng điện tử riêng biệt trong cùng một ống
phóng tia điện tử.
    Khi cần nghiên cứu, đo lường các tín hiệu độc lập thì ta dùng loại oscilloscop
không đồng bộ.
     Khi cần nghiên cứu tín hiệu như tín hiệu xung có độ rộng rất nhỏ hay tín hiêu có
chu kì với tần số cao thì dùng loại oscilloscop loại hoạt nghiệm, là loại oscillo được
thực hiện theo phương pháp lấy mẫu.
     Khi có yêu cầu nghiên cứu cụ thể hơn về các thông số, đặc tính của tín hiệu,
muốn đo các thông số khác của nó, muốn xử lý được kết quả quan sát, so sánh chúng
với các giá trị chuẩn mà đã được cho trước, hoặc khi sử dụng oscilloscop như là một
phần của hệ đo lường tự động thì ta cần chọn oscilloscop có cài đặt bộ vi xử lý.



Nguyễn Văn Thông K49ĐB                    15
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

      2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ TƯƠNG TỰ
      Oscillloscop về cơ bản cấu tạo của nó là một loại máy vẽ di động theo hai chiều
X,Y
      Cấu trúc của sơ đồ như sau:
          Kênh lệch đứng Y
          Kênh lệch ngang X
          Kênh khống chế độ sáng Z
          Ống phóng tia điện tử CRT

      Kênh lệch đứng Y dùng để xử lý tín hiệu cần quan sát, có nhiệm vụ phối hợp về
trở kháng, mức điện với tín hiệu của mạch điện cần đo (tạo trễ pha tín hiệu khi sử dụng
chế độ quét đợi để quan sát tín hiệu xung có độ rộng nhỏ), và khuếch đại tín hiệu
( khuếch đại đối xứng) quan sát trước khi đưa vào cặp phiến lệch Y của ống điện tử.
Bộ tạo trễ nhằm đảm bảo cho sự khởi động gốc thời gian của điện áp quét (của kênh
lệch ngang) trước khi tín hiệu cần quan sát tới cặp phiến Y, như vậy đảm bảo sự hiện
hình toàn bộ tín hiệu, nhất là tín hiệu xung, để dạng của nó không bị mất sườn trước
không được vẽ. Bộ khuếch đại ra Y cần là đối xứng để đảm bảo tín hiệu quan sát được
vẽ không bị méo dao động đồ do thay đổi điện trường tăng tốc mà chính do điện áp tín
hiệu gây ra.
     Các chỉ tiêu của kênh Y: độ nhạy (vôn/độ chia), dải băng tần, trị số trở kháng đầu
vào (điện trở và điện dung đầu vào).
     Kênh lệch ngang X có nhiệm vụ cung cấp điện áp làm lệch theo chiều ngang của
ống điện tử. Điện áp đưa vào bộ lệch X còn được tạo ra từ bộ tạo điện áp quét, khi cần
biểu diễn tín hiệu cần quan sát theo thời gian.
      Điện áp tạo được từ bộ điện áp quét được đồng bộ từ tín hiệu quan sát lấy từ
kênh Y, đó là đồng bộ trong. Nó cũng được đồng bộ từ tín hiệu đồng bộ ngoài, khi
không đồng bộ được từ tín hiệu đồng bộ trong và đồng bộ từ tín hiệu 50Hz lấy từ
nguồn cung cấp xoay chiều, khi cần quan sát tín hiệu tần số thấp và khử hiện tượng
nhiễu. Như vậy có ba chế độ đồng bộ trong oscilloscop, để có được dao động đứng
yên trong quá trình quan sát.
     Các chỉ tiêu của kênh lệch ngang chủ yếu dựa vào các chỉ tiêu của điện áp quét.
Các chỉ tiêu đó là: Độ không tuyến tính của điện áp quét, thời gian quét thuận thì lớn


Nguyễn Văn Thông K49ĐB                    16
Khóa luận tốt nghiệp                       Thử nghiệm thiết kế dao động ký số trên FPGA

hơn rất nhiều thời gian quét ngược trong một chu kì quét, dải tần số quét, tốc độ biến
đổi của điện áp theo thời gian và hiệu suất tạo biên độ điện áp quét.
     Trên hình vẽ, độ không đường thẳng là tỷ số của khoảng biến thiên tốc độ điện
áp quét trong thời gian quét thuận (Tth) trên giá trị tốc độ trung bình:
                     dU           dU
                        ) max − (
                        (            ) min
               y % = dT           dT
                             dU
                           (    )tb
                             dT

     Trong một chu kí quét Tq thì : Tth>>Tng

                                               Uq
                                        ς% =
     Hiệu suất tạo biên độ quét:               Eng



     Điều kiện để có một dao đồng đồ đứng yên, tức là điều kiện giữ đồng bộ:
                        1
     Tq = nTth ( Tth=   fth
                              là chu kì của điện áp tín hiệu cần quan sát).


     2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ SỐ
      Với loại Oscilloscop thông thường (loại tương tự), chỉ quan sát tín hiệu có chu
kì. Song các tín hiệu không chu kì thì loại thông thường không thể quan sát được mà
phải dùng loại có nhớ số.
     Oscilloscop có nhớ loại tương tự có cấu tạo đặc biệt gọi là loại ống tia có nhớ.
     Oscilloscop có nhớ số (DSO) có các ưu điểm là:
          Duy trì hình ảnh dạng của tín hiệu trên màn hình với khoảng thời gian
           không hạn chế.
          Tốc độ đọc có thể thay đổi trong giới hạn rộng
          Các hình ảnh lưu trữ có thể xem lại được ở tốc độ thấp hơn nhiều tốc độ
           quét có thể tới 1cm/1h.
          Tạo được hình ảnh dao động đồ tốt hơn, tương phản nhiều hơn loại
           osilloscop tương tự
          Đơn giản hơn trong sử dụng vận hành




Nguyễn Văn Thông K49ĐB                               17
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

         Có thể truyền trực tiếp số liệu của tín hiệu cần quan sát dưới dạng số và có
            thể ghép trực tiếp với máy tính hoặc được xử lí trong osilloscop.
     Sơ đồ của loại Oscilloscop có nhớ số như hình vẽ




                      Hình 9: Sơ đồ khối của osilloscop sốcó nhớ

      Khi chuyển mạch S đặt ở vị trí 2 thì oscilloscop làm việc là một oscilloscop có
nhớ. Điện áp tín hiệu cần quan sát được đưa vào đầu Y, tới bộ biến đổi tương tự ->số
ADC. Tại thời điểm đó (t1), khối điều khiển gửi một lệnh tới đầu vào của bộ ADC và
khởi động quá trình biến đổi. Kết quả là điện áp tín hiệu được số hóa, có nghĩa là bộ
biến đổi lấy mẫu dạng tín hiệu ở nhiều điểm và biến đổi giá trị tức thời của biên độ tại
mỗi điểm thành giá trị mã nhị phân tỷ lệ với biên độ đó. Tại thời điểm kết thúc quá
trình biến đổi, bộ biến đổi ADC gửi một lệnh kết thúc đến bộ điều khiển
      Mỗi số nhị phân được chuyển tới bộ nhớ và được nhớ ở vị trí ô nhớ riêng biệt.
Bởi vì đây là bộ nhớ không linh hoạt (nonvolatile memory) nên nó có thể lưu trữ số
nhị phân với bất kì độ dài thời gian nào. Khi cần thiết một lệnh từ khối điều khiển có
thể làm cho các số nhị phân này có thể sắp sếp theo chuỗi thứ tự đã xác định và được
đưa tới bộ biến đổi DAC. Bộ này sẽ biến đổi các giá trị nhị phân thành điện áp tương
tự, và điện áp này được đưa qua bộ khuếch đại Y.Do bộ nhớ được liên tiếp quét nhiều
lần trong một giây lên màn hình được sáng liên tục và hiện lên dạng sóng và hình vẽ
các điểm sáng, biểu thì dạng sóng cần quan sát.




Nguyễn Văn Thông K49ĐB                     18
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

    Để đạt được một đường sáng liên tục, còn có thể có thêm một mạch nội suy (làm
mượt giữa bộ DAC và bộ khuếch đại Y).
      Hạn chế của loại trên do tốc độ biến đổi ADC thấp, nhưng gần đây đã có những
loại ADC biến đổi với tốc độ rất cao tuy nhiên giá thành thì rất đắt.
     Một loại oscilloscop có nhớ khác là dùng bộ vi xử lí làm khối điều khiển.
     Sơ đồ khối của oscilloscop số có nhớ như hình vẽ:




                       Hình 10: Sơ đồ khối của oscilloscop số có nhớ

     Hình dưới có phần khác hình trên ở chỗ: Bộ giao động quét thực sự là bộ biến
đổi DAC kênh X, được điều khiển từ số liệu của Microprocessor. Đầu ra bộ biến đổi
DAC tạo ra điện áp nhảy bậc, sao cho sự nhảy bậc thang không khác biệt quá nhiều so
với điện áp bậc thang được tạo ra từ bộ dao động quét tương tự.
      Với DAC loại 8 bit, số bước nhảy là 28=256. Toàn bộ đoạn điện áp ra được chia
thành 255 bước riêng biệt, và sự lệch ngang của tia điện tử thực tế là tỉ lệ theo thời
gian. Tốc độ biến đổi DAC và bộ điều khiển quét quyết định tốc độ quét cực đại, tốc
độ quét có thể điều khiển bằng việc thay đổi số đến đầu vào số của bộ DAC.
     Còn tổ hợp các bộ phía trên gồm: ADC, Bộ nhớ, DAC của kênh Y cho phép khả
năng thay đổi trễ của tín hiệu vào của hệ thống làm lệch y trong một giới hạn rộng,



Nguyễn Văn Thông K49ĐB                    19
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

đồng thời nó có thể kết hợp được với DAC của kênh X như vậy đảm bảo sự đồng bộ
chính xác.
2.4 OSCILLOSCOP TƯƠNG TỰ CÓ CÀI ĐẶT VI XỬ LÝ
      Không chỉ có oscilloscop điện tử số mới có thê cài đặt vi xử lý mà oscilloscop
tương tự cũng có thể cài đặt được vi xử lý và nó có thể hoạt động gần giống như
oscilloscop điện tử số. Thực chất của nó là nó có dùng thêm một số thiết bị xử lý số
như dùng bộ vi xử lý, các bộ biến đổi ADC…




                   Hình 11: Sơ đồ một oscilloscop tương tự dùng vi xử lý

     Với loại này ta thấy ngay sơ đồ nó được chia làm ba phần:
          Phần thứ nhất nó giống như một oscilloscop tương tự
          Phần giữa có các bộ biến đổi tương tự số (ADC) và bộ biến đối số tương
             tự (DAC) cùng với các module nhớ và một hệ vi xử lý với chức năng
             kiểm tra, chúng ta có thể coi phần này như là một phần hay một
             oscilloscop có nhớ.
          Phần dưới cùng là bộ vi xử lý để phục vụ cho việc điều khiển chương
             trình và xử lý tín hiệu số, card giao diện dùng để nối oscilloscop với giao
             diện hệ thống.



Nguyễn Văn Thông K49ĐB                    20
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

      Khi cần nhận dạng của tín hiệu được nghiên cứu theo tỷ lệ thời gian thực tế thì
oscilloscop làm việc như một oscilloscop vạn năng. Nếu như không dùng khả năng
điều khiển bằng chương trình và xử lý theo những khả năng của bộ vi xử lý số theo
khả năng của bộ vi xử lý thì oscolloscop trên làm việc như một oscilloscop tương tự
thông thường. Khi đó có thể đổi một số khối chuẩn (bộ khuếch đại Y,X, máy phát
chuẩn…) như đối với một số oscilloscop thông thường mà cấu tạo được thiết kế có thể
thay thế các khối này hay nối thêm các khối mới. Xu hướng hiện nay ta có thể chia nó
ra làm hai phần: phần tương tự và phần số cũng được thể hiện ở chỗ phân bố vị trí của
các phần thuộc hệ điều khiển. Những cái để điểu khiển thông thường hay gặp ở
oscilloscop thông thường thì vẫn được giữ nguyên ở vị trí nguyên thủy được cách
riêng với bàn phím.
       Vi xử lý làm cho loại oscilloscop này có thêm các đặc điểm mới. Nó có chứa tất
cả các modul mới mà một hệ thống như thế phải có. Mắt xích nối giữa vi xử lý với
khối tương tự chính là bộ biến đổi tương tự số (ADC).
     Hệ thống được nối với nhau thông qua các bus hệ thống của vi xử lý và được liên
kết chung tới các ROM, RAM và các card giao diện để giao tiếp với thiết bị hiển thị
như màn hình hay có thể kết nối trực tiếp tới máy tính thông qua các loại card.
     Một loại Oscilloscop có nhớ số(DSO) là ta có thể dùng một con chip FPGA để
làm trung tâm điều khiển
     Cấu tạo và chi tiết thiết kế một Oscilloscop có nhớ số (DSO) dùng chip FPGA sẽ
được trình bày chi tiết trong chương 3.




----------------------------------




Nguyễn Văn Thông K49ĐB                   21
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA


Chương 3
            CÁC BƯỚC THIẾT KẾ MỘT OSCILLOSCOP SỐ CÓ NHỚ




           Hình 12: Sơ đồ khối của DSO đã được đơn giản hoá dùng FPGA

      Nguyên lý hoạt động tương đối đơn giản. Tín hiệu được đưa qua một bộ khuếch
đại tín hiệu sau đó được đưa vào một con ADC, tại ADC tín hiệu sẽ được lấy mẫu để
lượng tử hóa tín hiệu tương tự thành tín hiệu số. Đầu ra của cả ADC và bộ nhớ đệm
đều cùng chia sẻ chung bus 3 trạng thái. Nó là một bước trung gian để quyết định chọn
kênh nào, đầu ra nào, để tiết kiệm được đường truyền và tránh xung đột dữ liệu khi cả
hai đầu ra của ADC và bộ nhớ đệm cùng ra một lúc…chương trình điều khiển logic sẽ
quyết định chọn 1 trong 2 đầu ra hoặc của ADC hoặc của bộ nhớ đệm để đưa nó tới



Nguyễn Văn Thông K49ĐB                   22
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

bus, vì vậy nó chọn 1 trong 2 là thuộc dạng logic tương tự hay logic dạng số. Sau đó
dữ liệu được đưa lên bus và được đưa vào bộ nhớ chính để lưu trữ dữ liệu. Lôgic điều
khiển sẽ đồng thời theo dõi dữ liệu để quan sát điểm trigơ. Cách tiếp cận này loại trừ
mạch điện bổ sung mà bình thường trigơ cần phải có, và thu hẹp đường tín hiệu tương
tự, do đó giảm bớt nhiễu. Điều này cũng cung cấp khả năng gây nên tín hiệu dạng số
khi dùng máy phân tích logic. Ngoài tìm điểm trigơ, logic điều khiển cũng thực hiện
mọi chức năng “Glue logic” và phương thức tiền trigơ. Khi bộ nhớ đầy, dữ liệu dừng
ghi và được chuyển vào PC thông qua cổng song song.
      Vì 2 kênh hoàn toàn riêng biệt nên chúng hoạt động một cách độc lập. Ví dụ:
kênh A là trong chế độ phân tích logic (logic analyser), kênh B lại ở trong chế độ
tương tự (analogue). Hiệu quả của tốc độ lấy mẫu có thể tăng gấp đôi bằng cách kết
nối 2 đầu ra tương tự với nhau và đổi pha kênh thứ 2 đi 180 0. Sau khi dữ liệu được đưa
vào PC, nó được xen vào bởi phần mềm và dạng sóng đã được thiết kế lại. Mặc dù tín
hiệu được thử 2 lần ở tần số thường, độ dài của bản ghi vẫn ko giảm vì cả hai bộ nhớ
đang được dùng để lưu trữ dạng sóng đơn.
     3.1 CÁC THÀNH PHẦN TRONG THIẾT KẾ
      3.1.1.Bộ nhớ
    Từ đặc điểm kỹ thuật của DSO dùng chip FPGA mà ta thiết kế thì bộ nhớ cần
những điều kiện cần thiết sau:
         Dữ liệu bus rộng 8bit.
         Có thể chứa 3Mbit.
         Tốc độ truyền dữ liệu 40Mbytes/giây.
         Cổng “đọc” và “ghi” riêng.

     Bởi vì tốc độ lấy mẫu của ADC là nhanh hơn rất nhiều so với tốc độ đọc của bộ
nhớ (ở đây chúng ta dùng RAM) cho nên nhất thiết phải dùng bộ nhớ có hai cổng đọc
và ghi riêng biệt để tránh tình trạng không có dữ liệu. Cho nên để thoả mãn được
những yêu cầu này,chúng ta phải chọn bộ nhớ(RAM) có 2 đường đọc và ghi riêng biệt.
Bởi vì tốc độ lấy mẫu khi dùng một con ADC flash tốc độ cao cho nên yêu cầu bộ nhớ
cũng cần có tốc độ ghi dữ liệu cao và có tốc độ đọc dữ liệu phù hợp với tốc độ của
cổng song song mà ta sử dụng để truyền dữ liệu lên máy tính Vì những lý do này để
quyết định dùng bộ nhớ trong thiết kế ta nên dùng những bộ nhớ hình ảnh được sử


Nguyễn Văn Thông K49ĐB                    23
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA

dụng chính trong các ứng dụng video như thời gian dựa trên sự hiệu chỉnh và hình ảnh
trong phim. Chúng là loại bộ nhớ hội tụ đủ những yêu cầu của úng dụng của ta .Bởi vì
nó có công suất chứa lớn, tốc độ truyền dữ liệu nhanh và cổng “đọc” và “ghi” riêng.
Hơn nữa chúng được hợp nhất ở mức độ cao, làm đơn giản việc thiết kế bản mạch.
      Sau khi nghiên cứu và tìm hiểu các thiết bị có sẵn trên thị trường Việt Nam thì
em chọn bộ nhớ của hãng Averlogic là AL422. Nó là một bộ nhớ hình ảnh và cũng
giống như hầu hết các bộ nhớ hình ảnh khác, nó được thiết kế và chế tạo dựa trên công
nghệ DRAM. Mặc dù bus dữ liệu bên ngoài chỉ rộng 8 Bit, phần lớn bộ nhớ hình ảnh
sử dụng bus bên trong có chiều rộng hơn. ĐIều này làm tăng tốc độ hiệu quả nhờ tính
tương đương. Logic tốc độ cao được dùng để chia tách bus bên trong thành nhiều phần
8 bit,mà sau này nó đó được đặt trên bus dữ liệu đầu ra. Thêm vào đó bộ điều khiển
DRAM và address , nó tạo ra logic được giử trong AL 422.Vị trí dữ liệu được ghi vào
được nhớ vào một thanh ghi địa chỉ. Giá trị của thanh này có thể là lớn lên hoặc về 0
(điểm bắt đầu của bộ nhớ). Tuy nhiên nó ko thể được dịch chuyển tới 1 vị trí ngẫu
nhiên nào đó mà phải được tăng hay giảm một cách tuần tự vì quá trình ghi phải diễn
ra liên tục. Những bộ nhớ hình ảnh chạy giống như những bộ đếm trong mà khi thanh
ghi tiến tới đoạn cuối của bộ nhớ, nó sẽ tự động reset về điểm bắt đầu và lại bắt đầu
ghi đè lên điểm đã có trước đó. Quá trình đọc sử dụng thanh ghi đọc tương tự. Vì thế
những bộ nhớ hình ảnh thường được gọi là First In First Out Buffers (FIFO).




                          Hình 13: Sơ đồ thực hiện chức năng của AL422
      AL422 sử dụng 3 chân để kiểm soát quá trình ghi. WCLK, /WE, và /WRST. Dữ
liệu sẽ được ghi vào bộ nhớ theo sườn xung ghi dữ liệu (WCLK) khi chân write enable


Nguyễn Văn Thông K49ĐB                   24
Khóa luận tốt nghiệp                  Thử nghiệm thiết kế dao động ký số trên FPGA

cao (WE), và bộ đếm địa chỉ sẽ tăng dần theo sườn của xung clock. Trong trường hợp
thanh ghi (hay bộ đếm địa chỉ) ko được gia tăng thì dữ liệu ko được ghi. Để ghi lại dữ
liệu vào bộ nhớ tại điểm đầu tiên cảu thanh ghi địa chỉ có giá trị 0 ta phải đưa chân
write reset (WRST) xuống thấp và xung ghi (WCLK), địa chỉ sẽ được reset về điểm
bắt đầu của bộ nhớ và dữ liệu được ghi vào điểm bắt đầu cùng với các địa chỉ tiếp theo
khi thanh ghi địa chỉ tăng lên..
      Quá trình đọc được kiểm soát bởi 4 chân, RCLK, /RE, /RRST và /OE. Dữ liệu
cũng được đọc theo sường xung của xung read clock (RCLK), thanh địa chỉ đọc ra
được gia tăng khi chân read enable (/RE) và chân OE ( output enable) cao,thì dữ liệu
mới được đưa ra. Nếu chân OE mà ở mức thấp thì thanh ghi địa chỉ đọc dừng lại và
dữ liệu không được ra hoặc thanh ghi địa chỉ vẫn tăng thế nhưng dữ liệu vẫn được chốt
tại đó và không được ra. Thanh ghi địa chỉ đọc cũng có thể được reset về điểm bắt đầu
của bộ nhớ bằng cách đăt chân read reset (/RRST) ở mức thấp và xung RCLK. Mặc dù
được điều khiển bằng tay ở bên trong, DRAM refresh thu được từ RCLK or WCLK
(bất cứ cái nào nhanh hơn), vì thế để duy trì tính nguyên vẹn của dữ liệu ít nhất 1 trong
các tín hiệu trên phải được giữ chạy nhanh hơn 1MHz.
       3.1.2 Bộ biến đổi tương tự - số ADC




                       Hình 13: Sơ đồ khối của ADC TDA 8703




Nguyễn Văn Thông K49ĐB                     25
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA

      ADC được dùng biến đổi dạng sóng tương tự sang dạng xung PAM. Vì bản chất
tự nhiên riêng biệt của tín hiệu số, dạng sóng tương tự sẽ được lượng tử hoá đến mức
tương đương số gần nhất và chuyển thành tín hiệu số. Sự chuyển ADC càng lớn thì sai
số sự lượng tử hoá được đưa vào càng nhỏ. Ta thấy có rất nhiêu loại ADC trên thị
trường nhưng để thỏa mãn nhưng để đạt được những yêu cầu và lý do dùng FPGA làm
bộ điều khiển cho dao động số có nhớ em tìm hiểu trên thị trường thì em thấy
TDA8703 là phù hợp nhất.Bởi vì nó có tốc độ lấy mẫu rất cao (có thể đạt được tốc độ
tối đa là 140MHz). Tuy nhiên ta cũng có thể thay thế bởi các ADC khác có sẵn trên thị
trường.
       Phần lớn ADC tốc độ cao dùng phương thức Flash Conversion, cái này sử dụng
theo các mảng song song của 2n-1 bộ so sánh (n là độ phân giải của ADC trong các
bit). Điều này có nghĩa là cứ mỗi 8bit, máy đổi điện lại yêu cầu 255 bộ so sánh. Mức
độ phức tạp này không chỉ làm tăng chi phí mà còn làm hạn chế tốc độ tối đa mà bộ
biến đổi có thể hoạt động. TDA8703 sử dụng phương thức Flash Conversion truyền
lại, trong ADC này thì bộ biến đổi được chia tách thành 7 cấp với mỗi cấp dùng 1
trình chuyển đổi cực nhanh 2 bit. Chính điều này làm giảm số bộ so sánh được yêu cầu
xuống còn 28 và đây cũng là một ưu điểm của bộ biến đổi ADC nhanh dùng phương
thức biết đổi Flash Conversion. Mặc dù nó đưa ra một góc trễ 7 chu kì đồng hồ giữa
tín hiệu tương tự được đưa vào và dữ liệu xuất hiện trên các đầu ra. Đối với chương
trình ứng dụng này thì điều đó là có thể chấp nhận được.




Nguyễn Văn Thông K49ĐB                   26
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA




                        Hình 15: sơ đồ nối chân của ADC TDA 8703

      3.1.3 Bộ khuếch đại đệm
      Khi tín hiệu tương tự được đưa vào mà DSO đang hoạt động ở chế độ xen kẽ
giữa tín hiệu alnalog và logic analyser, thì tín hiệu tương tự được đưa vào 2 ADC
thông qua một bộ khuếch đại đệm. Khi đó bộ trung gian này sẽ vừa có chức năng làm
một bộ khuếch đại tín hiệu vừa có chức năng là môt bộ đệm tín hiệu. Cả 2 chức năng
này có thể đạt được với 1 bộ khuêch đại đệm (ở đây em dùng Elantec EL4332C). Bởi
vì nó thỏa mãn nhưng yêu cầu đặt ra của thiết kế.




                       Hình 16:Sơ đồ thực hiện nối chân của EL4332


Nguyễn Văn Thông K49ĐB                   27
Khóa luận tốt nghiệp               Thử nghiệm thiết kế dao động ký số trên FPGA

     EL4332C có bề rộng băng tần tối đa 300MHz và chứa đựng 3 bộ tiền khuêch đại
nên rất phù hợp với các đầu vào đa thành phần. Điều đó làm nó trở nên rất phù hợp
đối với ứng dụng này vì nó có thể thực hiện cả chuyển mạch đệm và đảo mạch đầu
vào. 1 tín hiệu logic đơn được dùng như đầu vào cho cả 3 bộ tiền khuêch đại. Tuy
nhiên mặt hạn chế của nó là cũng như phần lớn các bộ khuếch đại có độ rộng băng tần
cao khác, hệ số khuếch đại của nó được cố định là 2.




                           Hình 17:sơ đồ thực hiện khuếch đại




                        Hình 18:Sơ đồ khối bên trong của EL4332




Nguyễn Văn Thông K49ĐB                  28
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

      3.1.4 Điều khiển logic
     Những DSO trước đó có dùng những con chip bán dẫn để thiết kế và làm chúng
để điều khiển thì chỉ dùng các PLA (Programmable Logic Devices). Thế nhưng những
con chip này có độ tích hợp thấp và không thỏa mãn những như cầu sử dụng ngày
càng cần tốc độ cao nên nó dần bị thay thế.
      Để có được tốc độ cao để đáp ứng được các yêu cầu ứng dụng và đo các tần số
cao thì hiện nay người ta thường dùng các chip FPGA để thực hiện. Chúng được dùng
như trái tim của cả hệ thống. Bởi vì chúng có độ tích hợp rất cao như đã trình bày ở
chương 1 nên chúng có thể đảm nhiệm nhiều nhiệm vụ và hơn thế nữa với những tính
năng của nó ta có thể dễ dàng lập trình và cấu hình nó để thực hiện những yêu cầu của
ứng dụng. Chính vì thế chúng ta sẽ giảm được kích thước của mạch bởi tất cả vần đề
điều khiển đều nằm ở con chip FPGA. Để điều khiển các khối khác trong mạch của
DSO thì ta có thể chương trình hóa cho FPGA để nó thực hiện nhiệm vụ này. Cũng
bời do chương trình hóa cho FPGA ngày nay rất dễ dàng với các ngôn ngữ như VHDL
hay verilog HDL cùng với các chương trình của Altera. Hơn nữa ngày nay giá thành
của FPGA ngày càng giảm mạch và có rất sẵn trên thị trường các linh kiện bán ở Việt
Nam.
     Dưới đây là các sơ đồ logic của chip FPGA FLEX 8K của Altera




                               Hình 19: Sơ đồ khổi của FLEX 8K


Nguyễn Văn Thông K49ĐB                    29
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA




                           Hình 20:Sơ đồ khối logic của FLEX8K

      Ta có thể thấy trên hình vẽ thì các chân I/O đều được bố chí xung quanh chip và
chúng được kế nối vào các thanh phần logic và các LUT của chip, chúng hợp thành
các cột các hàng và thông qua các mạng kết nối ben trong chip. Và cũng giống như tất
cả các chip FPGA khác nó cung câp những xung nhịp tần số nhanh ở đầu ra và thời
gian nhanh tại nơi lấy đầu vào. Ở đây mỗi LAB(Logic Array Block) là gồm 8 LE
(logic element ) cung cấp 4 tín hiệu điều khiển và mỗi tín hiệu điều khiển có thể điều
khiển 8 LE. Trong 4 tín hiệu điều khiển của LAB thì trong đó có 2 tín hiệu có thể được
sử dụng giống như các clock và 2 tín hiệu còn lại có thể được sử dụng như tín hiều
reset và enable.Những tín hiều điều khiển có thể lấy từ tín hiệu đầu vào của ta.
      Chip FPGA của Altera là EPF8282A-84, là một trong những dòng chip của họ
FLEX 8K. Nó là 1 chip 84 pin PLCC với 68 chân có thể kết nối I/O . Loại này phù
hợp với ứng dụng hơn và có những lợi thế mà con chip có thể được lắp để phát triển dễ
dàng. Do bản chất của FPGA, chúng có thể hoạt động ở tốc độ nào là phụ thuộc vào
việc thiết kế mà chúng thực hiện. Mặc dù chip được chọn là loại có tốc độ chậm nhất
nhưng nó vẫn có khả năng vận hành máy đếm lớn ở mức trên 80MHz. Cũng như tất cả
nguyên lý thiết kế mà FPGA sẽ thực hiện vận hành ở mức 50mHz hay thấp hơn thì nó
là đủ.

Nguyễn Văn Thông K49ĐB                    30
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA

     FLEX 8K là thiết bị cung cấp những ứng dụng rộng rãi như xử lý tín hiệu số,
dùng cho những vận hành mà có đường dữ liệu rộng và biến đổi dữ liệu. Trong thiết bị
này có những lựa chọn cho giao diện bus, tích hợp các TTL đặc biệt là điều khiển với
tốc độ cao. Những sản phẩm mà có số chân lớn có thể tích hợp được tới 32 bộ mutiple
trong một thiết bị.
      FLEX 8K cung cấp 4 bộ đầu vào chuyên dụng cho việc đồng bộ điều khiển tín
hiệu cùng với trở tải lớn. Mỗi chân I/O có kết hợp một thanh ghi trên mặt ngoài của
thiết bị. Giống như đầu ra thì thanh ghi cũng có những loại có xung đồng hồ nhanh để
đảm bảo việc ra tín hiệu nhanh chóng và chúng có những thiết đặt nhanh vè mặt thời
gian. Hầu hết các FLEX 8k được cấu hình cùng với các kiến trúc CMOS SRAM. Nó
có thể cấu hình lượng dữ liệu được lưu trữ trong chuẩn công nghiệp. Nó có thể cấu
hình việc lưu trữ song song trong hay cấu hình nối tiếp trong các EEPROM hoặc cung
cấp những dữ liệu bằng điều khiển hệ thống. Việc cấu hình này có thể cho phép lưu trữ
dữ liệu nên tới 32K x 8 bit hoặc lớn hơn trong các EPROM. Hơn nữa chúng có thể lấy
từ RAM của hệ thống để cung cấp những dữ liệu cần thiết cho nó hoạt động
      Chúng ta có thể dùng các công cụ phần mềm như MAX+PLUS II hay QUATUS
II để cấu hình chúng theo những ứng dụng mong muốn của người dùng. Để cấu hình
chúng thì tất nhiên chúng ta phải biết một trong những ngôn ngũ là VHDL và Verilog
HDL để lập trình mô tả phẩn cứng cần thực hiện.
3.1.5 Giao tiếp với máy tính
     Có một số tuỳ chọn cho giao giao tiếp giữa DSO với PC:
     Serial Port
     Parallel Port
     USB
     ISA
     PCI
      Do 1 lượng tương đối lớn dữ liệu được lưu giữ trong DSO, cổng nối tiếp ko được
tính đến bởi thời gian yêu cầu để download dữ liệu vào PC ko thể chấp nhận thời gian
dài do tốc độ truyền dữ liệu của cổng nối tiếp chậm. USB cũng ko thực tế vì tính phức
tạp của nó bởi vì viết chương trình điều khiển cho USB rất phức tạp. Tuy rằng hiện
này tất cả các PC đều có cổng USB thế nhưng để cấu hình được USB trong FPGA rất
khó. Mặc dù nhanh nhưng cả PCI and ISA đều đòi hỏi sự kết nối bên trong tới PC và


Nguyễn Văn Thông K49ĐB                   31
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

vì thế rất khó để có thể cài đặt và làm cho thiết kế thêm phần phức tạp do phải làm
mạch PCI . Cổng song song được chọn vì nó có tốc độ chuyển đổi dữ liệu tương đối
cao và dễ dàng để phát triển thiết bị, dễ sử dụng và đang hiện diện trong các máy tính
để bàn tuy rằng trong thời gian gần đây có những mày laptop thì không có cổng này
nhưng mà nó vẫn được sử dụng rất rộng rãi do thực hiện đơn giàn, làm cho DSO được
dùng trong nhiều lĩnh vực và cũng có linh cơ đông.Hơn nữa tốc độ truyền của cổng
song song có thể chấp nhận được trong thiết kế của úng dụng này.
      Để đơn giản và tương thích với thiết kế và nhu cầu sử dụng thì chế độ hai chiều
chuẩn được quyết định sử dụng, cái này thì có sẵn từ thời những chip 386 và tương
thích với hầu hết các chuẩn có trong máy tính hiện nay. Nó cho phép độ rộng byte
chuyển đến hướng khác và có thêm 5 line đầu vào (Status lines) và 4 line đầu ra
(Control lines). Với các thiết lập chuẩn và tương thích thì DSO cho phép người sử
dụng lựa chọn địa chỉ thích hợp cho cổng song song đặc biệt. Vì chỉ có 3 địa chỉ có thể
được sử dụng nên điều này là tương đối dễ dàng. Điều này đặc biệt có ích nếu PC đang
sử dụng có nhiều cổng.


     3.2 THIẾT KẾ CHI TIẾT
      3.2.1 Cấu hình để nạp vào FPGA
      Vì FPGA dựa trên nền SRAM nên nó không thể lưu chương trình điều khiển có
ngay trong chip bởi khi mất nguồi điện cung cấp cho nó thì chương tình không còn
nữa chính vì thế nó phải được chương trình hoá mỗi lần hệ thống khởi động lại.Để giải
quyết điều này thì phương thức thích hợp nhất cho ứng dụng này là phương thức
Active Serial. Phương thức này bao hàm cả việc kết nối 1 serial EEPROM (E2) tới
FPGA và có thuận lợi là chỉ yêu cầu 1 chân I/O để sử dụng. 2 kết nối còn lại tới E 2
được dành cho các chân cấu hình. Hơn nữa các chân cấu hình được nối cao hay thấp là
dùng để chỉ lược đồ cấu hình nào đang được sử dụng. Chính vì thế mà ta có thể giữ
được chương trình điều khiển nếu mất nguồi cung cấp cho DSO, và tiết kiệm số chân
của FPGA và có thể dùng chúng vào các úng dụng khác. Khi khỏi động lại thì chương
trình sẽ được nạp vào chip FPGA thông qua chân JTAG của FPGA và ta lại có một
DSO, thời gian này được tiến hành rất nhanh mà tạo cảm giác như không có gì.
     Bằng cách sử dụng bộ hợp kênh để kết nối E2 tới FPGA và khi đó ta có thể hoặc
có thể được kết nối tới FPGA hoặc tới programming header trên bo mạch. Vì thế có

Nguyễn Văn Thông K49ĐB                    32
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

thể lập trình lại chương trình điều khiển cho FPGA trong khi chương trình cũ vẫn ở
trong bản mạch và DSO vẫn đang hoạt động. Đầu vào được chọn tới bộ hợp kênh
được đẩy mạnh bởi 1K điện trở và được kết nối tới ISP header. Khi ta nạp lại chương
trình vào E2 thì khi đó chân được tự động nối đất trong thời gian nạp lại vào trong E2
và được đẩy vào chip FPGA trong thời gian sau khi khởi động lại. Việc này làm
chuyển E2 từ chỗ được kết nối tới Altera thành được kết nối tới programmer. Sau khi
việc lập trình hoàn tất, người sử dụng chỉ phải nạp lại hay reset lại DSO để nạp lại và
bo mạch là có thể sử dụng lại DSO với những tính năng đã được cập nhật dữ liệu cấu
hình mới từ chip bộ nhớ.
      3.2.2 Chế độ tiền trigger
      Việc ghi dữ liệu trước điểm trigger rất hữu ích khi chúng ta dò lỗi hệ thống. thực
hiện việc này bằng cách ta để cho DSO ghi những tín hiệu liên tục đi vào, tiến trình
ghi dữ liệu này được kết thúc khi 1 xung (pulse) trigger được dò thấy trong hệ thống.
Nội dung dữ liệu sẽ được ghi vào bộ nhớ tại thời điểm trước của điểm trigger được dò
thấy. Quá trình này được thực hiện bằng cách điểu khiển thời gian của cả hai tiến trình
dò tìm điểm trigger và khi đó sẽ kết thúc việc ghi dữ liệu khi điểm trigger được dò
thấy trong tiến trình.
     Việc này được thực hiện cùng với 1 bộ đếm (counter) 19bit đó là một khóa từ tín
hiệu mẫu giống như FIFO, vị vậy khi giá trị của counter bằng độ lớn địa chỉ của bộ
nhớ thì việc ghi được dừng lại.Giá trị của những sườn trước trigger có thể được thiết
đặt bởi pre-loading giá trị counter đó là một giá trị giữa 0 (không tiền trigger) và
393216 (cỡ của bộ nhớ và là lớn nhất của pre-trigger). Số 393216 là 0x60000 trong hệ
HEX, điều đó có nghĩa là số logic duy nhất là 2bit đầu tiên của counter được dùng để
dừng việc ghi.
      Dữ liệu được bắt đầu ghi tại bất kì địa chỉ nào của bộ nhớ mà thang ghi địa chỉ
trỏ tới nhưng khi bắt đầu ghi tại điểm này ta phải ghi tuẩn tự kể từ đó. Khi thực hiện
đếm tiếp counter 19bit lần thứ hai .Nó được sử dụng để nhận dạng quá trình tiếp theo
và lại bắt đầu ghi vào bộ nhớ tử địa chỉ ở ô nhớ đầu tiên, dữ liệu sẽ được ghi đè lên
nhưng dữ liệu có trong bộ nhớ trước đó. Bộ counter được reset lại tại cùng một thời
điểm giống như điểm bắt đầu ghi tại FIFO và chạy từ tín hiệu lấy mẫu đầu tiên, vì vậy
giá trị được lưu trữ nếu counter có giá trị nhỏ hơn không gian của bộ nhớ nếu bằng thì
nó sẽ được reset về điểm bắt đầu và sau đó là bắt đầu điểm ghi lại tại điểm đầu của bộ


Nguyễn Văn Thông K49ĐB                     33
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

nhớ. Trước khi dữ liệu được truyển tới máy tính giá trị của counter được sử dụng để
đọc tuần tự những dữ liệu có trong bộ nhớ như hình 21 phía dưới:
      Bộ counter được reset lại khi giá trị đếm của nó là lớn hơn cỡ của bộ nhớ. Bởi vì
counter bao gồm số zero nó sẽ đếm tại 0x60001, theo lí thuyết bộ counter sẽ được
reset về điểm bắt đầu khi nó đếm tới số lớn nhất có thể và được đồng bộ cùng với thời
điểm ghi (đây là hiệu ứng chất dồn). Tất cả quá trình này được thực hiện và xử lú bên
trong một con chip FPGA.
                               Bắt đầu                 Điểm
                                 ghi                   trigger



                    Kết thúc               Bắt đầu                Giữa

                                   Trước khi sắp xếp
                Bắt đầu
                                                                            Kết thúc
                của bộ
                                                                            của bộ
                nhớ
                                                                            nhớ
                     Bắt đầu                                     Kết thúc
                      Start                 Giữa                  End
                       End                                   End

                                   Sau khi sắp xếp


                               Hình 21: Sự sắp xếp của bộ nhớ



      3.2.3 Dò điểm trigger
      Trigger unit là đơn vị thực hiện bên trong chip FPGA nó có nhiệm vụ, giám sát
cả hai kênh cho giá trị điểm trigger (giống như hình dưới đây) . Tất cả những số từ
được lưu trữ là lớn hơn, bằng hay nhỏ hơn giá trị của mỗi thanh ghi nó đảm bảo rằng
mỗi thanh ghi không bị tràn khi lưu trữ. Bằng cách thay đổi giá trị của mỗi thanh ghi
được người sử dụng để có thể thay đổi mức của trigger. Dưới đây là bảng chân lí để
thực hiện mỗi trigger unit




Nguyễn Văn Thông K49ĐB                    34
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA




     Không phải đầu ra từ ADC mà cũng không phải đầu ra từ logic buffer mà nó
được chờ đợi để thay đổi chính xác tại cùng một thời điểm giá trị có thế xuất hiện trên
bus. Ví dụ như việc thay đổi từ 12 tới 10 và giá trị 14 xuất hiện trong bus, giống như
mô tả dưới đây.




     Nó có thể xuất hiện khi mất sườn trigger. Giải pháp cho việc này là xung clock
phải đồng bộ dữ liệ vì vậy đầu ra từ trigger unit được chọn là mẫu duy nhất khi dữ liệu
     trên bus.Chúng ta thực hiện bằng cách đặt một trigger D ngay tại đầu ra của
mạch trigger để đồng bộ xung nhịp hệ thống này và thu được một tín hiệu ra là đồng
bộ..
     Trạng thái cuối cùng trong đơn vị dò điểm trigger chuyển đổi cấp độ trigger dài
hơn bình thường bằng trạng thái đầu tiên trong sườn trigger.Công việc hoàn thành
bằng cách duy nhất là chuyển tiếp 1 nếu đường trigger có giá trị 0, vì vậy mà đầu ra
duy nhất ở mức cao khi trong đó có sự truyền từ thấp tới cao và xuất hiện sườn. Bằng


Nguyễn Văn Thông K49ĐB                    35
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

cách thiết đặt tại trig-sel bus tới 0x3 được người sử dụng để không cho phép trigger và
bắt đầu quá trình ghi trực tiếp.
      3.3.4 Bộ tạo xung
     Việc tạo ra xung clock rất hữu ích bởi nó có thế thay đổi tần số lấy mẫu, cho
phép người sử dụng tới việc chuyển đổi độ dài quá trình ghi lại tần số lấy mẫu. Trong
hệ thống chính xung clock cung cấp bởi tần số 50MHz TTL của máy tạo xung, nó
được dùng bằng tinh thể thạch anh. Đó là được cấu hình bên trong chip FPGA nới nó
được chi tần. Ở đây ta có thế chia tần theo bằng cách dung một bộ đếm counter 5bit
khi đó ta sẽ thu được tần số mới có tỉ lệ là là ½,1/4,1/8,1/26,1/32 so với tần số hệ
thống.Chúng ta sử dụng một bộ hợp kênh để chọn tần số thích hợp cho xung clock của
DSO, ta có thể thấy tròng hình.
     Để cung cấp cùng tần số lấy mẫu cho hai kênh ta phải cung cấp cho chúng lệch
nhau 1800 để đảm bảo được tín hiệu lấy mẫu tốt, vì vậy ta có thế dùng một mạch “not”
để cung cấp cho một thanh ghi dịch.
     Rất nhiều thiết bị trong FPGA và cả hai FIFO’s cần truyền dữ liệu tới PC vì vậy
để thực hiện điều này ta cần sử dụng bus ba trạng thái(tri-state bus), nó được biểu diến
dưới hình sau:


                                           Bus ba trạng thái
      Cổng song
                        Bộ đệm
        song




                                          FPGA             FIFO A           FIFO B


                                   Hình 22: BUS dữ liệu ra

     Bởi vì việc điều khiển trong FPGA là định hướng chân trên mọi chip đệm và nó
cũng cho phép đầu ra (/OE) trên FIFO’s, nó hoạt động giống như một bước đệm trung
gian kết nối giữa chúng để tránh xung đột dữ liệu khi cả hai cùng xuất dữ liệu ra bởi vì
bus chỉ cho một dữ liệu ra trong cùng một thời điểm các đầu ra còn lại đều được để ở
mức trở kháng cao. Chúng ta dùng buffer chuẩn là 74LS245, bởi vì điện dung kí sinh


Nguyễn Văn Thông K49ĐB                     36
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

của nó thấp hơn cổng song song mà ở đây chúng ta dùng cổng song song để giao tiếp
với máy tính. Giống như là chip đệm các chân của nó cũng có thể thay đổi dễ dàng nếu
nó bị hư.
     Bus ba trạng thái giữa ADCs và đệm logic thì được kết nối cũng có những tính
chất điều khiển như bus của cổng song song, trong đầu ra một ADC và đệm logic tới
một bus mà cả hai FPGA và FIFO cùng kiểm soát.




                          Hình 23: Sơ đồ logic của 74LS245

      3.3.6 Giao diện logic cổng song song
      Điều khiển logic phụ thuộc vào rất nhiều yếu tố như các đường điểu khiển để
thiết đặt hệ số chia tần, điểm trigger….trong đó được tạo ra bằng giao diện logic cổng
song song. 4bit đầu tiên của bus điều khiển cổng song song được sử dụng giống như
bus dữ liệu. Dữ liệu trên bus được chốt lại trong thanh điều khiển bằng các xung còn
lại của đường điều khiển, để chặn lại những tín hiệu không bình thường trên cổng song
song xuất hiện bên trong DSO. Đầu ra của con chốt này được cấu hình vào lối vào của
một bộ giải mã tới việc tăng lên số đường có thể. Một vài đường này là được sử dụng
để chốt dữ liệu từ bus dữ liệu chính của cổng song song bên trong một thanh ghi 4


Nguyễn Văn Thông K49ĐB                    37
Khóa luận tốt nghiệp                 Thử nghiệm thiết kế dao động ký số trên FPGA

hoặc 8 bit. Nó cung cấp tất cả đường điều khiển có thể có. Những đường điều khiển
còn lại của bộ mã hóa được sử dụng cho xung đọc FIFO (RCLK) và cho phép đầu ra
trên bus từ FPGA.
      3.3.7 Điều khiển ADC
      Khi DSO là có một kênh thì cả hai chế độ đầu ra là là tín hiệu xung PAM giống
như tín hiệu số và tín hiệu đầu vào là tín hiệu tương tự được xen kẽ nhau. Bất kì sự
khác nhau nào của tín hiệu đầu ra cũng gây ra nhiễu, giống như sự xen kẽ của mẫu tín
hiệu sẽ có sự khác nhau tại giá trị hiện thời nếu có nội dung của tín hiêu tương tự đầu
vào. Sự chuyển đổi tín hiệu tương tự thành tín hiệu số phụ thuộc vào 2 giá trị tham
chiếu của điện áp (1 cho biên độ và 1 cho thế offset). Nó được quyết định sử dụng tín
hiệu tham chiếu bên ngoài như là xây dựng một cái ADC, nó nghĩa là theo lí thuyết thì
nó nghĩa là sự cấu hình để chuyển đổi cả hai yếu tố của điện thế, ở đây cao nghĩa là
chúng ta có thế lấy ngay tín hiệu bên ngoài là câc đường logic để đưa ra công song
song, nó thường có nhiễu là nhỏ nhất.
      Mặc dù có thể tìm thấy sự khác biệt về biên độ cung với sự khác biệt về đầu ra và
băng thông đủ lớn. Vì lí do này nó được quyết định để sử dụng một kết thúc khi điện
áp là 2.5V thì cấu hình trong ADC thì đầu vào có thế thay đổi 0.5V nơi mà V DC là độ
dốc của dòng một chiều. Để điều khiển của đầu vào của ADC thì phải tuân theo các
công thức sau:
             0.5<Vin<4.5
      Theo lí thuyết thì VDC phải như sau:
             1 < VDC < 4
      Trong DSO thì VDC được cung cấp bời nguồn tạo điện áp thứ hai và có một giá trị
là 1.25V, nó đưa ra như sau:
             0.75<Vin<1.75
      Bộ khuêch đại được cấu hình lại cho 2 giá trị điện áp là:
             0.375<Vinput<0.875
     Bằng việc chọn kiều của định dạng dữ liệu (DFS) của chân ADC hoạt động ở
mức cao hoặc thấp dữ liệu có thế tuôn ra giống như những số offset nhị phân hoặc là
số bù 2. Thiết đặt định dạng đầu vào tới offset để giảm nó xuống là rất phức tạp của
trigger logic và theo lí thuyết là số ô logic được sử dụng vào việc đồng bộ.
-----------------


Nguyễn Văn Thông K49ĐB                    38
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA



   Chương 4

           CHƯƠNG TRÌNH VÀ MÔ PHỎNG TRÊN KIT DE2




     4.1 TỔNG QUAN VỀ KIT DE2 VÀ CHIP CYCLONE II
     Bởi vì thời gian thực hiện để tài ngắn nên em không làm ra được mạch em chỉ
mô phỏng trên Kit phát triển DE2 của Altera với họ FPGA của hãng này là Cyclon II
với chip là EP2C35F672C6. Với dòng chip này thì tài nguyên của nó lớn hơn rất nhiều
so với FLEX 8K của hãng.




      Hình 24: Sơ đồ khối ghép nối giữa Cyclone II với các thành phần trên KIT




Nguyễn Văn Thông K49ĐB                   39
Khóa luận tốt nghiệp               Thử nghiệm thiết kế dao động ký số trên FPGA




            Hình 25:sơ đồ các thành phần trên kit DE2




                         Hình 26:Sơ đồ khối của Cyclone II

    Chíp Cyclone II còn có tài nguyên rất phong phú trong đó:
        Có 33.216 LE: thành phần nhỏ nhất trong chip là thành phần logic (logic
          element). Mỗi LE (Logic Element) có thể được cấu hình thành một Fip-
          Flop D,T,JK hay RS. Mỗi một thành phần này cũng có các đầu và là data,
          clock, enable,clear và đầu ra cũng là data. Chúng cung có thể cấu hình
          thành các thành phần cơ bản khác trong mỗi ứng dụng. chúng cũng có thể


Nguyễn Văn Thông K49ĐB                  40
Khóa luận tốt nghiệp              Thử nghiệm thiết kế dao động ký số trên FPGA

              cấu hình thanh các LUT (Loop Up Table). Để sử dụng cấu hình các LE
              thành các thanh ghi hay là thành các LUT là tuỳ thuộc vào người sử dụng
              lập trình trên các phần mềm như QUATUS II. Khi lập trình xong và
              download vào chip thì chương trình của mình sẽ tự động tạo ra nhứng
              thanh ghi hay những LUT tuỳ thuộc vào chưong trình của mình.
              Hình dưới mô tả quá trình cấu hình các LE thành các ứng dụng của mình
              như mong muốn khi lập trình các ứng dụng của mình và download vào
              bên trong chip Cyclone II thì chương trình bên trong sẽ tự động dồn các
              thành phần logic của ta vào chung một khu vực để giảm bớt tài nguyên.
              Tuy nhiên để đảm bảo việc sử dụng tài nguyên một cách hiệu quả còn phải
              phụ thuộc nhiều và kĩ năng lập trình và thiết kế của người kĩ sư.




                              Hình 27:Sơ đồ khối của LAB

           Có 105 khối M4K RAM: các khối M4K nội dung được chứa trong các cột
của M4K cảu các khởi bộ nhớ, Mỗi khối này thì bao gồm các đầu vào là các thanh ghi
được được ghi đồng bộ và đầu ra là các được thiết kế theo chế độ đường ống. Các đầu
ra các thanh ghi có thể được đẩy qua nhưng các đầu vào thì không thể làm thế được.
Từ các thành phần này ta có thể có các bô nhớ là dual-port hay là sinple-port. Các bộ
nhớ ở đây ta có thể dùng như RAM hay ROM hay các bộ đệm FIFO. M4K có thể hỗ
trợ cho:


Nguyễn Văn Thông K49ĐB                    41
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA

                  • 4,608 bit RAM.
                  •    Có thể thực hiện ở tần số 250MHz.
                  •    hỗ trợ cho cả bộ nhớ đơn cổng hay hai cổng riêng biệt.
                  •    có thể cấu hình thành các thanh ghi dịch, các bộ đệm FIFO.
                  •    có thể cấu hình thành các ROM….




                        Hình 28:Sơ đồ khối của M2K RAM

         Có tổng cộng 483,840 bits RAM.
         4 PLLs (vòng khóa pha).
                  Có 475 chân I/O để sử dụng: tất cả các chân I/O đều được gắn
            cùng nhau trên các banks I/O. Trong Cyclone II thì có tất cả 4 banks I/O.
            Trong đó thì bank 2 và banks 4 có thể hỗ trợ cho các kết nối với DDR2
            và có thể up tới 167MHz/333Mbps và QDR có thể úp lên tới
            167MHz/668 Mbps. Còn các bank 1 và 3 thì chỉ hỗ trợ duy nhất cho các
            giao diện của SDR và DDR SDRAM. tất cả các bank của Cyclone II có
            thể hỗ trợ cho các bộ nhớ SDR có thể úo lên hoạt động ở
            167MHZ/167Mbps và bộ nhớ DDR và có thể hoạt động ở
            167MHz/333Mpbs.



Nguyễn Văn Thông K49ĐB                   42
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA




                Hình 29:Sơ đồ bố chí các thanh chân trên Cyclone II

          Nó được đóng gói với 672 chân.
     Chương trình có thể được nạp trực tiếp từ phần mềm QUATUS II xuống chíp qua
một cáp USB.
    Ngoài ra trong KIT này còn có rất nhiều tài nguyên nữa như:
          Có 512 KB SRAM trong đó có 256 KB địa chỉ và có thể chứa dữ liệu
            với độ dài 16 bit.
          Có 8MB bộ nhớ SDRAM trong đó trong đó có thể có tới 1 MB địa chỉ
           và có thể chứa dữ liệu lên tới 16 bít và có 4 banks tất cả.
          Có 8MB bộ nhớ Flash và có thể chứa dữ liệu có độ rộng bít tối đa là
           8bits
          Nói chung trên KIT này để thực hành nghiên cứu và phát tiển thì rất hứu ích.

     Bởi vì phải mô phỏng và làm thử nghiệm trên kít này và tài nguyên của con
Cyclone II rất nhiều lên lên em dùng cả RAM trong chip bằng cách cấu hình bên tròn
nhờ các tool hỗ trợ, em cũng thử nghiệm các đường bằng cách làm một sóng SINE giả


Nguyễn Văn Thông K49ĐB                    43
Khóa luận tốt nghiệp                Thử nghiệm thiết kế dao động ký số trên FPGA

lập số với các mẫu là 8 bít. Coi như đây là các xung PAM đã được lấy mẫu qua ADC
và được kết nối tới các thành phần khác trong thiết kế.

     4.2 CHƯƠNG TRÌNH VÀ MÔ PHỎNG
      4.2.1. Chương trình chính điểu khiển DSO




                          Hình 30: Sơ đồ khổi điều khiển của DSO

      Hình trên này là sơ đồ khối tổng quát của bộ điều khiển của DSO được tạo ra từ
phần mềm Quatus II sau khi chạy chương trình được viết thì nó tạo ra. Phần code của
chương trình này được đặt ở phần phụ lục bên dưới.
       Trong hình này được chia thành các khối chính là :khối điều khiển logic cổng
song, khối điều khiển FIFO, khối tạo xung để chia tần, khối điều khiển dò điểm trigo.




Nguyễn Văn Thông K49ĐB                   44
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga
Cong nghe fpga

More Related Content

What's hot

PCI Express* based Storage: Data Center NVM Express* Platform Topologies
PCI Express* based Storage: Data Center NVM Express* Platform TopologiesPCI Express* based Storage: Data Center NVM Express* Platform Topologies
PCI Express* based Storage: Data Center NVM Express* Platform TopologiesOdinot Stanislas
 
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...Jenny Hương
 
Slideshare - PCIe
Slideshare - PCIeSlideshare - PCIe
Slideshare - PCIeJin Wu
 
Arm cortex R(real time)processor series
Arm cortex R(real time)processor series Arm cortex R(real time)processor series
Arm cortex R(real time)processor series Ronak047
 
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdlhoangclick
 
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...nataliej4
 
Pf sense firewall
Pf sense  firewallPf sense  firewall
Pf sense firewallQuan Tâm
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plcLập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plcXuân Thủy Nguyễn
 
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...KhoTi1
 
Tài liệu profibus
Tài liệu profibusTài liệu profibus
Tài liệu profibusVu Phong
 
báo cáo thực hành kỹ thuật vi xử lý PTIT
báo cáo thực hành kỹ thuật vi xử lý PTITbáo cáo thực hành kỹ thuật vi xử lý PTIT
báo cáo thực hành kỹ thuật vi xử lý PTITnataliej4
 
Thực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdf
Thực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdfThực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdf
Thực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdfMan_Ebook
 
Can Transport Protocol : UDS
Can Transport Protocol : UDS Can Transport Protocol : UDS
Can Transport Protocol : UDS Kapil Thakar
 

What's hot (20)

Pcie drivers basics
Pcie drivers basicsPcie drivers basics
Pcie drivers basics
 
Đề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAY
Đề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAYĐề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAY
Đề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAY
 
PCI express
PCI expressPCI express
PCI express
 
PCI Express* based Storage: Data Center NVM Express* Platform Topologies
PCI Express* based Storage: Data Center NVM Express* Platform TopologiesPCI Express* based Storage: Data Center NVM Express* Platform Topologies
PCI Express* based Storage: Data Center NVM Express* Platform Topologies
 
Tài liệu chi tiết bộ điều khiển PLC Siemens S7-1500
Tài liệu chi tiết bộ điều khiển PLC Siemens S7-1500Tài liệu chi tiết bộ điều khiển PLC Siemens S7-1500
Tài liệu chi tiết bộ điều khiển PLC Siemens S7-1500
 
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
Đề tài: tìm hiểu về công nghệ nhận dạng tần số sóng vô tuyến RFID và ứng dụng...
 
Slideshare - PCIe
Slideshare - PCIeSlideshare - PCIe
Slideshare - PCIe
 
Arm cortex R(real time)processor series
Arm cortex R(real time)processor series Arm cortex R(real time)processor series
Arm cortex R(real time)processor series
 
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdl
 
Bai 05 bo nho chinh ramrom
Bai 05  bo nho chinh ramromBai 05  bo nho chinh ramrom
Bai 05 bo nho chinh ramrom
 
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
 
Pf sense firewall
Pf sense  firewallPf sense  firewall
Pf sense firewall
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plcLập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
 
Bai 03 bo mach chu mainboard
Bai 03  bo mach chu mainboardBai 03  bo mach chu mainboard
Bai 03 bo mach chu mainboard
 
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
 
Tài liệu profibus
Tài liệu profibusTài liệu profibus
Tài liệu profibus
 
báo cáo thực hành kỹ thuật vi xử lý PTIT
báo cáo thực hành kỹ thuật vi xử lý PTITbáo cáo thực hành kỹ thuật vi xử lý PTIT
báo cáo thực hành kỹ thuật vi xử lý PTIT
 
Thực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdf
Thực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdfThực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdf
Thực hành kiến trúc và tổ chức máy tính - Phạm Văn Khoa.pdf
 
Pci express modi
Pci express modiPci express modi
Pci express modi
 
Can Transport Protocol : UDS
Can Transport Protocol : UDS Can Transport Protocol : UDS
Can Transport Protocol : UDS
 

Similar to Cong nghe fpga

Đề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAY
Đề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAYĐề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAY
Đề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAYViết thuê trọn gói ZALO 0934573149
 
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim ThoaNghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim ThoaMan_Ebook
 
ARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdf
ARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdfARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdf
ARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdfkhanhnguyen870330
 
GIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdf
GIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdfGIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdf
GIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdfQucTNguyn27
 
Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...
Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...
Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...Viết thuê báo cáo thực tập giá rẻ
 
De-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfDe-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfAnhTVit1
 
La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...
La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...
La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...https://www.facebook.com/garmentspace
 
Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...
Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...
Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...Man_Ebook
 
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdfNghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdfMan_Ebook
 
Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02KUTY UIT - VNU HCM
 
Toàn tập về orcad
Toàn tập về orcadToàn tập về orcad
Toàn tập về orcadDavid Trần
 

Similar to Cong nghe fpga (20)

Đề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAY
Đề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAYĐề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAY
Đề tài: Thử nghiệm thiết kế dao động ký số trên FPGA, HAY
 
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim ThoaNghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
Nghiên cứu cải thiện chất lượng mã LDPC, Hà Thị Kim Thoa
 
Nghiên cứu phát triển hệ thống Phần cứng, phần mềm phát hiện và theo dõi chuy...
Nghiên cứu phát triển hệ thống Phần cứng, phần mềm phát hiện và theo dõi chuy...Nghiên cứu phát triển hệ thống Phần cứng, phần mềm phát hiện và theo dõi chuy...
Nghiên cứu phát triển hệ thống Phần cứng, phần mềm phát hiện và theo dõi chuy...
 
ARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdf
ARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdfARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdf
ARDUINO_CHO_NGI_MI_BT_DU_Quyn_can (1).pdf
 
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
 
Máy điện dị bộ nguồn kép cho hệ thống phát điện trên tàu thủy
Máy điện dị bộ nguồn kép cho hệ thống phát điện trên tàu thủyMáy điện dị bộ nguồn kép cho hệ thống phát điện trên tàu thủy
Máy điện dị bộ nguồn kép cho hệ thống phát điện trên tàu thủy
 
Luận án: Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép
Luận án: Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn képLuận án: Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép
Luận án: Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép
 
Luận văn: Kỹ thuật chuyển đổi Dual Stack 6vpe từ Ipv4 sang Ipv6
Luận văn: Kỹ thuật chuyển đổi Dual Stack 6vpe từ Ipv4 sang Ipv6Luận văn: Kỹ thuật chuyển đổi Dual Stack 6vpe từ Ipv4 sang Ipv6
Luận văn: Kỹ thuật chuyển đổi Dual Stack 6vpe từ Ipv4 sang Ipv6
 
GIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdf
GIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdfGIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdf
GIÁO-TRÌNH-PLC-S7-1200-Mô-tả_Full.pdf
 
Su dung orcad 9.2
Su dung orcad 9.2Su dung orcad 9.2
Su dung orcad 9.2
 
Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...
Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...
Đồ án điện tử Biện pháp thoả đáng bảo mật vô tuyến với Fpga và Asic - sdt/ ZA...
 
De-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfDe-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdf
 
La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...
La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...
La43.002 nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát...
 
Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...
Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...
Nâng cao hiệu quả sử dụng máy điện dị bộ nguồn kép cho hệ thống phát điện đồn...
 
Avr nang cao
Avr nang caoAvr nang cao
Avr nang cao
 
Vi dieu khien_pic
Vi dieu khien_picVi dieu khien_pic
Vi dieu khien_pic
 
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdfNghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
Nghiên cứu và thiết kế bộ chuyển đổi Ethernet-E1 trên công nghệ FPGA.pdf
 
Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02Thinghiemxlths 121102232414-phpapp02
Thinghiemxlths 121102232414-phpapp02
 
Thi nghiem xlths
Thi nghiem xlthsThi nghiem xlths
Thi nghiem xlths
 
Toàn tập về orcad
Toàn tập về orcadToàn tập về orcad
Toàn tập về orcad
 

Cong nghe fpga

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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 toà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 quá 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
  • 7. 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. Ngoà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 quá 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 loà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, nguyên 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
  • 8. 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
  • 9. 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 quá 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 toà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
  • 10. 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, ngoài ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toá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
  • 11. 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 ngoà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ì ngoà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
  • 12. 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 yê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
  • 13. 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à quá trình tổng hợp các mô tả thiết kế thành sơ đồ bố trí mạch (netlist). Quá 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
  • 14. 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
  • 15. 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
  • 16. 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ả quá 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
  • 17. 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 hoàn toà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
  • 18. 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ể luôn 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 ngoà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
  • 19. 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
  • 20. 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 yê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
  • 21. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA  Phải lưu được một khoảng thời gian dài tín hiệu với tốc độ lấy mẫu cao, tốc độ cập nhật màn hình nhanh giúp người kĩ sư quan sát một cách chi tiết và chính xác tín hiệu- đòi hỏi phải có một bộ nhớ đủ lớn.  Phải cung cấp các chế độ cấp phát linh hoạt, đa dạng và mạnh mẽ.  Phải được vi tính hóa với các tính năng như : có khả năng giao tiếp với máy tính qua cổng RS-232 hay cổng song song.  Phải có giao diện thân thiện với người dùng cung cấp các thao tác đơn giản, dễ hiểu, nhanh gọn. Có khả năng trợ giúp linh hoạt và dễ hiểu.  Phải có độ chính xác, độ tin cậy và độ ổn định cao. 2.2 PHÂN LOẠI OSCILLOSCOP Khi chỉ quan sát tín hiệu biến đổi liên tục hay tín hiệu xung với tần số lặp lại tương đối cao, và chỉ cần các thông số chính của nó là biên độ, tần số thì có thể dùng loại oscilloscop tương tự thông thường. Khi cần đo lường, quan sát đồng thời hay nhiều tín hiệu thì dùng oscilloscop nhiều kênh để có thể trực tiếp so sánh dao động đồ của hai hay nhiều tín hiệu trên màn hình. Với cách quan sát đo lường này cho phép ta đánh giá, so sánh các thông số đặc tính của chúng một cách định tính song nhanh chóng và có nhận xét hiệu quả. Thường thì các oscilloscop với cấu tạo hai hệ thống súng điện tử riêng biệt trong cùng một ống phóng tia điện tử. Khi cần nghiên cứu, đo lường các tín hiệu độc lập thì ta dùng loại oscilloscop không đồng bộ. Khi cần nghiên cứu tín hiệu như tín hiệu xung có độ rộng rất nhỏ hay tín hiêu có chu kì với tần số cao thì dùng loại oscilloscop loại hoạt nghiệm, là loại oscillo được thực hiện theo phương pháp lấy mẫu. Khi có yêu cầu nghiên cứu cụ thể hơn về các thông số, đặc tính của tín hiệu, muốn đo các thông số khác của nó, muốn xử lý được kết quả quan sát, so sánh chúng với các giá trị chuẩn mà đã được cho trước, hoặc khi sử dụng oscilloscop như là một phần của hệ đo lường tự động thì ta cần chọn oscilloscop có cài đặt bộ vi xử lý. Nguyễn Văn Thông K49ĐB 15
  • 22. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA 2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ TƯƠNG TỰ Oscillloscop về cơ bản cấu tạo của nó là một loại máy vẽ di động theo hai chiều X,Y Cấu trúc của sơ đồ như sau:  Kênh lệch đứng Y  Kênh lệch ngang X  Kênh khống chế độ sáng Z  Ống phóng tia điện tử CRT Kênh lệch đứng Y dùng để xử lý tín hiệu cần quan sát, có nhiệm vụ phối hợp về trở kháng, mức điện với tín hiệu của mạch điện cần đo (tạo trễ pha tín hiệu khi sử dụng chế độ quét đợi để quan sát tín hiệu xung có độ rộng nhỏ), và khuếch đại tín hiệu ( khuếch đại đối xứng) quan sát trước khi đưa vào cặp phiến lệch Y của ống điện tử. Bộ tạo trễ nhằm đảm bảo cho sự khởi động gốc thời gian của điện áp quét (của kênh lệch ngang) trước khi tín hiệu cần quan sát tới cặp phiến Y, như vậy đảm bảo sự hiện hình toàn bộ tín hiệu, nhất là tín hiệu xung, để dạng của nó không bị mất sườn trước không được vẽ. Bộ khuếch đại ra Y cần là đối xứng để đảm bảo tín hiệu quan sát được vẽ không bị méo dao động đồ do thay đổi điện trường tăng tốc mà chính do điện áp tín hiệu gây ra. Các chỉ tiêu của kênh Y: độ nhạy (vôn/độ chia), dải băng tần, trị số trở kháng đầu vào (điện trở và điện dung đầu vào). Kênh lệch ngang X có nhiệm vụ cung cấp điện áp làm lệch theo chiều ngang của ống điện tử. Điện áp đưa vào bộ lệch X còn được tạo ra từ bộ tạo điện áp quét, khi cần biểu diễn tín hiệu cần quan sát theo thời gian. Điện áp tạo được từ bộ điện áp quét được đồng bộ từ tín hiệu quan sát lấy từ kênh Y, đó là đồng bộ trong. Nó cũng được đồng bộ từ tín hiệu đồng bộ ngoài, khi không đồng bộ được từ tín hiệu đồng bộ trong và đồng bộ từ tín hiệu 50Hz lấy từ nguồn cung cấp xoay chiều, khi cần quan sát tín hiệu tần số thấp và khử hiện tượng nhiễu. Như vậy có ba chế độ đồng bộ trong oscilloscop, để có được dao động đứng yên trong quá trình quan sát. Các chỉ tiêu của kênh lệch ngang chủ yếu dựa vào các chỉ tiêu của điện áp quét. Các chỉ tiêu đó là: Độ không tuyến tính của điện áp quét, thời gian quét thuận thì lớn Nguyễn Văn Thông K49ĐB 16
  • 23. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA hơn rất nhiều thời gian quét ngược trong một chu kì quét, dải tần số quét, tốc độ biến đổi của điện áp theo thời gian và hiệu suất tạo biên độ điện áp quét. Trên hình vẽ, độ không đường thẳng là tỷ số của khoảng biến thiên tốc độ điện áp quét trong thời gian quét thuận (Tth) trên giá trị tốc độ trung bình: dU dU ) max − ( ( ) min y % = dT dT dU ( )tb dT Trong một chu kí quét Tq thì : Tth>>Tng Uq ς% = Hiệu suất tạo biên độ quét: Eng Điều kiện để có một dao đồng đồ đứng yên, tức là điều kiện giữ đồng bộ: 1 Tq = nTth ( Tth= fth là chu kì của điện áp tín hiệu cần quan sát). 2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ SỐ Với loại Oscilloscop thông thường (loại tương tự), chỉ quan sát tín hiệu có chu kì. Song các tín hiệu không chu kì thì loại thông thường không thể quan sát được mà phải dùng loại có nhớ số. Oscilloscop có nhớ loại tương tự có cấu tạo đặc biệt gọi là loại ống tia có nhớ. Oscilloscop có nhớ số (DSO) có các ưu điểm là:  Duy trì hình ảnh dạng của tín hiệu trên màn hình với khoảng thời gian không hạn chế.  Tốc độ đọc có thể thay đổi trong giới hạn rộng  Các hình ảnh lưu trữ có thể xem lại được ở tốc độ thấp hơn nhiều tốc độ quét có thể tới 1cm/1h.  Tạo được hình ảnh dao động đồ tốt hơn, tương phản nhiều hơn loại osilloscop tương tự  Đơn giản hơn trong sử dụng vận hành Nguyễn Văn Thông K49ĐB 17
  • 24. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA  Có thể truyền trực tiếp số liệu của tín hiệu cần quan sát dưới dạng số và có thể ghép trực tiếp với máy tính hoặc được xử lí trong osilloscop. Sơ đồ của loại Oscilloscop có nhớ số như hình vẽ Hình 9: Sơ đồ khối của osilloscop sốcó nhớ Khi chuyển mạch S đặt ở vị trí 2 thì oscilloscop làm việc là một oscilloscop có nhớ. Điện áp tín hiệu cần quan sát được đưa vào đầu Y, tới bộ biến đổi tương tự ->số ADC. Tại thời điểm đó (t1), khối điều khiển gửi một lệnh tới đầu vào của bộ ADC và khởi động quá trình biến đổi. Kết quả là điện áp tín hiệu được số hóa, có nghĩa là bộ biến đổi lấy mẫu dạng tín hiệu ở nhiều điểm và biến đổi giá trị tức thời của biên độ tại mỗi điểm thành giá trị mã nhị phân tỷ lệ với biên độ đó. Tại thời điểm kết thúc quá trình biến đổi, bộ biến đổi ADC gửi một lệnh kết thúc đến bộ điều khiển Mỗi số nhị phân được chuyển tới bộ nhớ và được nhớ ở vị trí ô nhớ riêng biệt. Bởi vì đây là bộ nhớ không linh hoạt (nonvolatile memory) nên nó có thể lưu trữ số nhị phân với bất kì độ dài thời gian nào. Khi cần thiết một lệnh từ khối điều khiển có thể làm cho các số nhị phân này có thể sắp sếp theo chuỗi thứ tự đã xác định và được đưa tới bộ biến đổi DAC. Bộ này sẽ biến đổi các giá trị nhị phân thành điện áp tương tự, và điện áp này được đưa qua bộ khuếch đại Y.Do bộ nhớ được liên tiếp quét nhiều lần trong một giây lên màn hình được sáng liên tục và hiện lên dạng sóng và hình vẽ các điểm sáng, biểu thì dạng sóng cần quan sát. Nguyễn Văn Thông K49ĐB 18
  • 25. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Để đạt được một đường sáng liên tục, còn có thể có thêm một mạch nội suy (làm mượt giữa bộ DAC và bộ khuếch đại Y). Hạn chế của loại trên do tốc độ biến đổi ADC thấp, nhưng gần đây đã có những loại ADC biến đổi với tốc độ rất cao tuy nhiên giá thành thì rất đắt. Một loại oscilloscop có nhớ khác là dùng bộ vi xử lí làm khối điều khiển. Sơ đồ khối của oscilloscop số có nhớ như hình vẽ: Hình 10: Sơ đồ khối của oscilloscop số có nhớ Hình dưới có phần khác hình trên ở chỗ: Bộ giao động quét thực sự là bộ biến đổi DAC kênh X, được điều khiển từ số liệu của Microprocessor. Đầu ra bộ biến đổi DAC tạo ra điện áp nhảy bậc, sao cho sự nhảy bậc thang không khác biệt quá nhiều so với điện áp bậc thang được tạo ra từ bộ dao động quét tương tự. Với DAC loại 8 bit, số bước nhảy là 28=256. Toàn bộ đoạn điện áp ra được chia thành 255 bước riêng biệt, và sự lệch ngang của tia điện tử thực tế là tỉ lệ theo thời gian. Tốc độ biến đổi DAC và bộ điều khiển quét quyết định tốc độ quét cực đại, tốc độ quét có thể điều khiển bằng việc thay đổi số đến đầu vào số của bộ DAC. Còn tổ hợp các bộ phía trên gồm: ADC, Bộ nhớ, DAC của kênh Y cho phép khả năng thay đổi trễ của tín hiệu vào của hệ thống làm lệch y trong một giới hạn rộng, Nguyễn Văn Thông K49ĐB 19
  • 26. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA đồng thời nó có thể kết hợp được với DAC của kênh X như vậy đảm bảo sự đồng bộ chính xác. 2.4 OSCILLOSCOP TƯƠNG TỰ CÓ CÀI ĐẶT VI XỬ LÝ Không chỉ có oscilloscop điện tử số mới có thê cài đặt vi xử lý mà oscilloscop tương tự cũng có thể cài đặt được vi xử lý và nó có thể hoạt động gần giống như oscilloscop điện tử số. Thực chất của nó là nó có dùng thêm một số thiết bị xử lý số như dùng bộ vi xử lý, các bộ biến đổi ADC… Hình 11: Sơ đồ một oscilloscop tương tự dùng vi xử lý Với loại này ta thấy ngay sơ đồ nó được chia làm ba phần:  Phần thứ nhất nó giống như một oscilloscop tương tự  Phần giữa có các bộ biến đổi tương tự số (ADC) và bộ biến đối số tương tự (DAC) cùng với các module nhớ và một hệ vi xử lý với chức năng kiểm tra, chúng ta có thể coi phần này như là một phần hay một oscilloscop có nhớ.  Phần dưới cùng là bộ vi xử lý để phục vụ cho việc điều khiển chương trình và xử lý tín hiệu số, card giao diện dùng để nối oscilloscop với giao diện hệ thống. Nguyễn Văn Thông K49ĐB 20
  • 27. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Khi cần nhận dạng của tín hiệu được nghiên cứu theo tỷ lệ thời gian thực tế thì oscilloscop làm việc như một oscilloscop vạn năng. Nếu như không dùng khả năng điều khiển bằng chương trình và xử lý theo những khả năng của bộ vi xử lý số theo khả năng của bộ vi xử lý thì oscolloscop trên làm việc như một oscilloscop tương tự thông thường. Khi đó có thể đổi một số khối chuẩn (bộ khuếch đại Y,X, máy phát chuẩn…) như đối với một số oscilloscop thông thường mà cấu tạo được thiết kế có thể thay thế các khối này hay nối thêm các khối mới. Xu hướng hiện nay ta có thể chia nó ra làm hai phần: phần tương tự và phần số cũng được thể hiện ở chỗ phân bố vị trí của các phần thuộc hệ điều khiển. Những cái để điểu khiển thông thường hay gặp ở oscilloscop thông thường thì vẫn được giữ nguyên ở vị trí nguyên thủy được cách riêng với bàn phím. Vi xử lý làm cho loại oscilloscop này có thêm các đặc điểm mới. Nó có chứa tất cả các modul mới mà một hệ thống như thế phải có. Mắt xích nối giữa vi xử lý với khối tương tự chính là bộ biến đổi tương tự số (ADC). Hệ thống được nối với nhau thông qua các bus hệ thống của vi xử lý và được liên kết chung tới các ROM, RAM và các card giao diện để giao tiếp với thiết bị hiển thị như màn hình hay có thể kết nối trực tiếp tới máy tính thông qua các loại card. Một loại Oscilloscop có nhớ số(DSO) là ta có thể dùng một con chip FPGA để làm trung tâm điều khiển Cấu tạo và chi tiết thiết kế một Oscilloscop có nhớ số (DSO) dùng chip FPGA sẽ được trình bày chi tiết trong chương 3. ---------------------------------- Nguyễn Văn Thông K49ĐB 21
  • 28. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Chương 3 CÁC BƯỚC THIẾT KẾ MỘT OSCILLOSCOP SỐ CÓ NHỚ Hình 12: Sơ đồ khối của DSO đã được đơn giản hoá dùng FPGA Nguyên lý hoạt động tương đối đơn giản. Tín hiệu được đưa qua một bộ khuếch đại tín hiệu sau đó được đưa vào một con ADC, tại ADC tín hiệu sẽ được lấy mẫu để lượng tử hóa tín hiệu tương tự thành tín hiệu số. Đầu ra của cả ADC và bộ nhớ đệm đều cùng chia sẻ chung bus 3 trạng thái. Nó là một bước trung gian để quyết định chọn kênh nào, đầu ra nào, để tiết kiệm được đường truyền và tránh xung đột dữ liệu khi cả hai đầu ra của ADC và bộ nhớ đệm cùng ra một lúc…chương trình điều khiển logic sẽ quyết định chọn 1 trong 2 đầu ra hoặc của ADC hoặc của bộ nhớ đệm để đưa nó tới Nguyễn Văn Thông K49ĐB 22
  • 29. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA bus, vì vậy nó chọn 1 trong 2 là thuộc dạng logic tương tự hay logic dạng số. Sau đó dữ liệu được đưa lên bus và được đưa vào bộ nhớ chính để lưu trữ dữ liệu. Lôgic điều khiển sẽ đồng thời theo dõi dữ liệu để quan sát điểm trigơ. Cách tiếp cận này loại trừ mạch điện bổ sung mà bình thường trigơ cần phải có, và thu hẹp đường tín hiệu tương tự, do đó giảm bớt nhiễu. Điều này cũng cung cấp khả năng gây nên tín hiệu dạng số khi dùng máy phân tích logic. Ngoài tìm điểm trigơ, logic điều khiển cũng thực hiện mọi chức năng “Glue logic” và phương thức tiền trigơ. Khi bộ nhớ đầy, dữ liệu dừng ghi và được chuyển vào PC thông qua cổng song song. Vì 2 kênh hoàn toàn riêng biệt nên chúng hoạt động một cách độc lập. Ví dụ: kênh A là trong chế độ phân tích logic (logic analyser), kênh B lại ở trong chế độ tương tự (analogue). Hiệu quả của tốc độ lấy mẫu có thể tăng gấp đôi bằng cách kết nối 2 đầu ra tương tự với nhau và đổi pha kênh thứ 2 đi 180 0. Sau khi dữ liệu được đưa vào PC, nó được xen vào bởi phần mềm và dạng sóng đã được thiết kế lại. Mặc dù tín hiệu được thử 2 lần ở tần số thường, độ dài của bản ghi vẫn ko giảm vì cả hai bộ nhớ đang được dùng để lưu trữ dạng sóng đơn. 3.1 CÁC THÀNH PHẦN TRONG THIẾT KẾ 3.1.1.Bộ nhớ Từ đặc điểm kỹ thuật của DSO dùng chip FPGA mà ta thiết kế thì bộ nhớ cần những điều kiện cần thiết sau:  Dữ liệu bus rộng 8bit.  Có thể chứa 3Mbit.  Tốc độ truyền dữ liệu 40Mbytes/giây.  Cổng “đọc” và “ghi” riêng. Bởi vì tốc độ lấy mẫu của ADC là nhanh hơn rất nhiều so với tốc độ đọc của bộ nhớ (ở đây chúng ta dùng RAM) cho nên nhất thiết phải dùng bộ nhớ có hai cổng đọc và ghi riêng biệt để tránh tình trạng không có dữ liệu. Cho nên để thoả mãn được những yêu cầu này,chúng ta phải chọn bộ nhớ(RAM) có 2 đường đọc và ghi riêng biệt. Bởi vì tốc độ lấy mẫu khi dùng một con ADC flash tốc độ cao cho nên yêu cầu bộ nhớ cũng cần có tốc độ ghi dữ liệu cao và có tốc độ đọc dữ liệu phù hợp với tốc độ của cổng song song mà ta sử dụng để truyền dữ liệu lên máy tính Vì những lý do này để quyết định dùng bộ nhớ trong thiết kế ta nên dùng những bộ nhớ hình ảnh được sử Nguyễn Văn Thông K49ĐB 23
  • 30. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA dụng chính trong các ứng dụng video như thời gian dựa trên sự hiệu chỉnh và hình ảnh trong phim. Chúng là loại bộ nhớ hội tụ đủ những yêu cầu của úng dụng của ta .Bởi vì nó có công suất chứa lớn, tốc độ truyền dữ liệu nhanh và cổng “đọc” và “ghi” riêng. Hơn nữa chúng được hợp nhất ở mức độ cao, làm đơn giản việc thiết kế bản mạch. Sau khi nghiên cứu và tìm hiểu các thiết bị có sẵn trên thị trường Việt Nam thì em chọn bộ nhớ của hãng Averlogic là AL422. Nó là một bộ nhớ hình ảnh và cũng giống như hầu hết các bộ nhớ hình ảnh khác, nó được thiết kế và chế tạo dựa trên công nghệ DRAM. Mặc dù bus dữ liệu bên ngoài chỉ rộng 8 Bit, phần lớn bộ nhớ hình ảnh sử dụng bus bên trong có chiều rộng hơn. ĐIều này làm tăng tốc độ hiệu quả nhờ tính tương đương. Logic tốc độ cao được dùng để chia tách bus bên trong thành nhiều phần 8 bit,mà sau này nó đó được đặt trên bus dữ liệu đầu ra. Thêm vào đó bộ điều khiển DRAM và address , nó tạo ra logic được giử trong AL 422.Vị trí dữ liệu được ghi vào được nhớ vào một thanh ghi địa chỉ. Giá trị của thanh này có thể là lớn lên hoặc về 0 (điểm bắt đầu của bộ nhớ). Tuy nhiên nó ko thể được dịch chuyển tới 1 vị trí ngẫu nhiên nào đó mà phải được tăng hay giảm một cách tuần tự vì quá trình ghi phải diễn ra liên tục. Những bộ nhớ hình ảnh chạy giống như những bộ đếm trong mà khi thanh ghi tiến tới đoạn cuối của bộ nhớ, nó sẽ tự động reset về điểm bắt đầu và lại bắt đầu ghi đè lên điểm đã có trước đó. Quá trình đọc sử dụng thanh ghi đọc tương tự. Vì thế những bộ nhớ hình ảnh thường được gọi là First In First Out Buffers (FIFO). Hình 13: Sơ đồ thực hiện chức năng của AL422 AL422 sử dụng 3 chân để kiểm soát quá trình ghi. WCLK, /WE, và /WRST. Dữ liệu sẽ được ghi vào bộ nhớ theo sườn xung ghi dữ liệu (WCLK) khi chân write enable Nguyễn Văn Thông K49ĐB 24
  • 31. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA cao (WE), và bộ đếm địa chỉ sẽ tăng dần theo sườn của xung clock. Trong trường hợp thanh ghi (hay bộ đếm địa chỉ) ko được gia tăng thì dữ liệu ko được ghi. Để ghi lại dữ liệu vào bộ nhớ tại điểm đầu tiên cảu thanh ghi địa chỉ có giá trị 0 ta phải đưa chân write reset (WRST) xuống thấp và xung ghi (WCLK), địa chỉ sẽ được reset về điểm bắt đầu của bộ nhớ và dữ liệu được ghi vào điểm bắt đầu cùng với các địa chỉ tiếp theo khi thanh ghi địa chỉ tăng lên.. Quá trình đọc được kiểm soát bởi 4 chân, RCLK, /RE, /RRST và /OE. Dữ liệu cũng được đọc theo sường xung của xung read clock (RCLK), thanh địa chỉ đọc ra được gia tăng khi chân read enable (/RE) và chân OE ( output enable) cao,thì dữ liệu mới được đưa ra. Nếu chân OE mà ở mức thấp thì thanh ghi địa chỉ đọc dừng lại và dữ liệu không được ra hoặc thanh ghi địa chỉ vẫn tăng thế nhưng dữ liệu vẫn được chốt tại đó và không được ra. Thanh ghi địa chỉ đọc cũng có thể được reset về điểm bắt đầu của bộ nhớ bằng cách đăt chân read reset (/RRST) ở mức thấp và xung RCLK. Mặc dù được điều khiển bằng tay ở bên trong, DRAM refresh thu được từ RCLK or WCLK (bất cứ cái nào nhanh hơn), vì thế để duy trì tính nguyên vẹn của dữ liệu ít nhất 1 trong các tín hiệu trên phải được giữ chạy nhanh hơn 1MHz. 3.1.2 Bộ biến đổi tương tự - số ADC Hình 13: Sơ đồ khối của ADC TDA 8703 Nguyễn Văn Thông K49ĐB 25
  • 32. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA ADC được dùng biến đổi dạng sóng tương tự sang dạng xung PAM. Vì bản chất tự nhiên riêng biệt của tín hiệu số, dạng sóng tương tự sẽ được lượng tử hoá đến mức tương đương số gần nhất và chuyển thành tín hiệu số. Sự chuyển ADC càng lớn thì sai số sự lượng tử hoá được đưa vào càng nhỏ. Ta thấy có rất nhiêu loại ADC trên thị trường nhưng để thỏa mãn nhưng để đạt được những yêu cầu và lý do dùng FPGA làm bộ điều khiển cho dao động số có nhớ em tìm hiểu trên thị trường thì em thấy TDA8703 là phù hợp nhất.Bởi vì nó có tốc độ lấy mẫu rất cao (có thể đạt được tốc độ tối đa là 140MHz). Tuy nhiên ta cũng có thể thay thế bởi các ADC khác có sẵn trên thị trường. Phần lớn ADC tốc độ cao dùng phương thức Flash Conversion, cái này sử dụng theo các mảng song song của 2n-1 bộ so sánh (n là độ phân giải của ADC trong các bit). Điều này có nghĩa là cứ mỗi 8bit, máy đổi điện lại yêu cầu 255 bộ so sánh. Mức độ phức tạp này không chỉ làm tăng chi phí mà còn làm hạn chế tốc độ tối đa mà bộ biến đổi có thể hoạt động. TDA8703 sử dụng phương thức Flash Conversion truyền lại, trong ADC này thì bộ biến đổi được chia tách thành 7 cấp với mỗi cấp dùng 1 trình chuyển đổi cực nhanh 2 bit. Chính điều này làm giảm số bộ so sánh được yêu cầu xuống còn 28 và đây cũng là một ưu điểm của bộ biến đổi ADC nhanh dùng phương thức biết đổi Flash Conversion. Mặc dù nó đưa ra một góc trễ 7 chu kì đồng hồ giữa tín hiệu tương tự được đưa vào và dữ liệu xuất hiện trên các đầu ra. Đối với chương trình ứng dụng này thì điều đó là có thể chấp nhận được. Nguyễn Văn Thông K49ĐB 26
  • 33. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Hình 15: sơ đồ nối chân của ADC TDA 8703 3.1.3 Bộ khuếch đại đệm Khi tín hiệu tương tự được đưa vào mà DSO đang hoạt động ở chế độ xen kẽ giữa tín hiệu alnalog và logic analyser, thì tín hiệu tương tự được đưa vào 2 ADC thông qua một bộ khuếch đại đệm. Khi đó bộ trung gian này sẽ vừa có chức năng làm một bộ khuếch đại tín hiệu vừa có chức năng là môt bộ đệm tín hiệu. Cả 2 chức năng này có thể đạt được với 1 bộ khuêch đại đệm (ở đây em dùng Elantec EL4332C). Bởi vì nó thỏa mãn nhưng yêu cầu đặt ra của thiết kế. Hình 16:Sơ đồ thực hiện nối chân của EL4332 Nguyễn Văn Thông K49ĐB 27
  • 34. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA EL4332C có bề rộng băng tần tối đa 300MHz và chứa đựng 3 bộ tiền khuêch đại nên rất phù hợp với các đầu vào đa thành phần. Điều đó làm nó trở nên rất phù hợp đối với ứng dụng này vì nó có thể thực hiện cả chuyển mạch đệm và đảo mạch đầu vào. 1 tín hiệu logic đơn được dùng như đầu vào cho cả 3 bộ tiền khuêch đại. Tuy nhiên mặt hạn chế của nó là cũng như phần lớn các bộ khuếch đại có độ rộng băng tần cao khác, hệ số khuếch đại của nó được cố định là 2. Hình 17:sơ đồ thực hiện khuếch đại Hình 18:Sơ đồ khối bên trong của EL4332 Nguyễn Văn Thông K49ĐB 28
  • 35. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA 3.1.4 Điều khiển logic Những DSO trước đó có dùng những con chip bán dẫn để thiết kế và làm chúng để điều khiển thì chỉ dùng các PLA (Programmable Logic Devices). Thế nhưng những con chip này có độ tích hợp thấp và không thỏa mãn những như cầu sử dụng ngày càng cần tốc độ cao nên nó dần bị thay thế. Để có được tốc độ cao để đáp ứng được các yêu cầu ứng dụng và đo các tần số cao thì hiện nay người ta thường dùng các chip FPGA để thực hiện. Chúng được dùng như trái tim của cả hệ thống. Bởi vì chúng có độ tích hợp rất cao như đã trình bày ở chương 1 nên chúng có thể đảm nhiệm nhiều nhiệm vụ và hơn thế nữa với những tính năng của nó ta có thể dễ dàng lập trình và cấu hình nó để thực hiện những yêu cầu của ứng dụng. Chính vì thế chúng ta sẽ giảm được kích thước của mạch bởi tất cả vần đề điều khiển đều nằm ở con chip FPGA. Để điều khiển các khối khác trong mạch của DSO thì ta có thể chương trình hóa cho FPGA để nó thực hiện nhiệm vụ này. Cũng bời do chương trình hóa cho FPGA ngày nay rất dễ dàng với các ngôn ngữ như VHDL hay verilog HDL cùng với các chương trình của Altera. Hơn nữa ngày nay giá thành của FPGA ngày càng giảm mạch và có rất sẵn trên thị trường các linh kiện bán ở Việt Nam. Dưới đây là các sơ đồ logic của chip FPGA FLEX 8K của Altera Hình 19: Sơ đồ khổi của FLEX 8K Nguyễn Văn Thông K49ĐB 29
  • 36. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Hình 20:Sơ đồ khối logic của FLEX8K Ta có thể thấy trên hình vẽ thì các chân I/O đều được bố chí xung quanh chip và chúng được kế nối vào các thanh phần logic và các LUT của chip, chúng hợp thành các cột các hàng và thông qua các mạng kết nối ben trong chip. Và cũng giống như tất cả các chip FPGA khác nó cung câp những xung nhịp tần số nhanh ở đầu ra và thời gian nhanh tại nơi lấy đầu vào. Ở đây mỗi LAB(Logic Array Block) là gồm 8 LE (logic element ) cung cấp 4 tín hiệu điều khiển và mỗi tín hiệu điều khiển có thể điều khiển 8 LE. Trong 4 tín hiệu điều khiển của LAB thì trong đó có 2 tín hiệu có thể được sử dụng giống như các clock và 2 tín hiệu còn lại có thể được sử dụng như tín hiều reset và enable.Những tín hiều điều khiển có thể lấy từ tín hiệu đầu vào của ta. Chip FPGA của Altera là EPF8282A-84, là một trong những dòng chip của họ FLEX 8K. Nó là 1 chip 84 pin PLCC với 68 chân có thể kết nối I/O . Loại này phù hợp với ứng dụng hơn và có những lợi thế mà con chip có thể được lắp để phát triển dễ dàng. Do bản chất của FPGA, chúng có thể hoạt động ở tốc độ nào là phụ thuộc vào việc thiết kế mà chúng thực hiện. Mặc dù chip được chọn là loại có tốc độ chậm nhất nhưng nó vẫn có khả năng vận hành máy đếm lớn ở mức trên 80MHz. Cũng như tất cả nguyên lý thiết kế mà FPGA sẽ thực hiện vận hành ở mức 50mHz hay thấp hơn thì nó là đủ. Nguyễn Văn Thông K49ĐB 30
  • 37. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA FLEX 8K là thiết bị cung cấp những ứng dụng rộng rãi như xử lý tín hiệu số, dùng cho những vận hành mà có đường dữ liệu rộng và biến đổi dữ liệu. Trong thiết bị này có những lựa chọn cho giao diện bus, tích hợp các TTL đặc biệt là điều khiển với tốc độ cao. Những sản phẩm mà có số chân lớn có thể tích hợp được tới 32 bộ mutiple trong một thiết bị. FLEX 8K cung cấp 4 bộ đầu vào chuyên dụng cho việc đồng bộ điều khiển tín hiệu cùng với trở tải lớn. Mỗi chân I/O có kết hợp một thanh ghi trên mặt ngoài của thiết bị. Giống như đầu ra thì thanh ghi cũng có những loại có xung đồng hồ nhanh để đảm bảo việc ra tín hiệu nhanh chóng và chúng có những thiết đặt nhanh vè mặt thời gian. Hầu hết các FLEX 8k được cấu hình cùng với các kiến trúc CMOS SRAM. Nó có thể cấu hình lượng dữ liệu được lưu trữ trong chuẩn công nghiệp. Nó có thể cấu hình việc lưu trữ song song trong hay cấu hình nối tiếp trong các EEPROM hoặc cung cấp những dữ liệu bằng điều khiển hệ thống. Việc cấu hình này có thể cho phép lưu trữ dữ liệu nên tới 32K x 8 bit hoặc lớn hơn trong các EPROM. Hơn nữa chúng có thể lấy từ RAM của hệ thống để cung cấp những dữ liệu cần thiết cho nó hoạt động Chúng ta có thể dùng các công cụ phần mềm như MAX+PLUS II hay QUATUS II để cấu hình chúng theo những ứng dụng mong muốn của người dùng. Để cấu hình chúng thì tất nhiên chúng ta phải biết một trong những ngôn ngũ là VHDL và Verilog HDL để lập trình mô tả phẩn cứng cần thực hiện. 3.1.5 Giao tiếp với máy tính Có một số tuỳ chọn cho giao giao tiếp giữa DSO với PC: Serial Port Parallel Port USB ISA PCI Do 1 lượng tương đối lớn dữ liệu được lưu giữ trong DSO, cổng nối tiếp ko được tính đến bởi thời gian yêu cầu để download dữ liệu vào PC ko thể chấp nhận thời gian dài do tốc độ truyền dữ liệu của cổng nối tiếp chậm. USB cũng ko thực tế vì tính phức tạp của nó bởi vì viết chương trình điều khiển cho USB rất phức tạp. Tuy rằng hiện này tất cả các PC đều có cổng USB thế nhưng để cấu hình được USB trong FPGA rất khó. Mặc dù nhanh nhưng cả PCI and ISA đều đòi hỏi sự kết nối bên trong tới PC và Nguyễn Văn Thông K49ĐB 31
  • 38. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA vì thế rất khó để có thể cài đặt và làm cho thiết kế thêm phần phức tạp do phải làm mạch PCI . Cổng song song được chọn vì nó có tốc độ chuyển đổi dữ liệu tương đối cao và dễ dàng để phát triển thiết bị, dễ sử dụng và đang hiện diện trong các máy tính để bàn tuy rằng trong thời gian gần đây có những mày laptop thì không có cổng này nhưng mà nó vẫn được sử dụng rất rộng rãi do thực hiện đơn giàn, làm cho DSO được dùng trong nhiều lĩnh vực và cũng có linh cơ đông.Hơn nữa tốc độ truyền của cổng song song có thể chấp nhận được trong thiết kế của úng dụng này. Để đơn giản và tương thích với thiết kế và nhu cầu sử dụng thì chế độ hai chiều chuẩn được quyết định sử dụng, cái này thì có sẵn từ thời những chip 386 và tương thích với hầu hết các chuẩn có trong máy tính hiện nay. Nó cho phép độ rộng byte chuyển đến hướng khác và có thêm 5 line đầu vào (Status lines) và 4 line đầu ra (Control lines). Với các thiết lập chuẩn và tương thích thì DSO cho phép người sử dụng lựa chọn địa chỉ thích hợp cho cổng song song đặc biệt. Vì chỉ có 3 địa chỉ có thể được sử dụng nên điều này là tương đối dễ dàng. Điều này đặc biệt có ích nếu PC đang sử dụng có nhiều cổng. 3.2 THIẾT KẾ CHI TIẾT 3.2.1 Cấu hình để nạp vào FPGA Vì FPGA dựa trên nền SRAM nên nó không thể lưu chương trình điều khiển có ngay trong chip bởi khi mất nguồi điện cung cấp cho nó thì chương tình không còn nữa chính vì thế nó phải được chương trình hoá mỗi lần hệ thống khởi động lại.Để giải quyết điều này thì phương thức thích hợp nhất cho ứng dụng này là phương thức Active Serial. Phương thức này bao hàm cả việc kết nối 1 serial EEPROM (E2) tới FPGA và có thuận lợi là chỉ yêu cầu 1 chân I/O để sử dụng. 2 kết nối còn lại tới E 2 được dành cho các chân cấu hình. Hơn nữa các chân cấu hình được nối cao hay thấp là dùng để chỉ lược đồ cấu hình nào đang được sử dụng. Chính vì thế mà ta có thể giữ được chương trình điều khiển nếu mất nguồi cung cấp cho DSO, và tiết kiệm số chân của FPGA và có thể dùng chúng vào các úng dụng khác. Khi khỏi động lại thì chương trình sẽ được nạp vào chip FPGA thông qua chân JTAG của FPGA và ta lại có một DSO, thời gian này được tiến hành rất nhanh mà tạo cảm giác như không có gì. Bằng cách sử dụng bộ hợp kênh để kết nối E2 tới FPGA và khi đó ta có thể hoặc có thể được kết nối tới FPGA hoặc tới programming header trên bo mạch. Vì thế có Nguyễn Văn Thông K49ĐB 32
  • 39. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA thể lập trình lại chương trình điều khiển cho FPGA trong khi chương trình cũ vẫn ở trong bản mạch và DSO vẫn đang hoạt động. Đầu vào được chọn tới bộ hợp kênh được đẩy mạnh bởi 1K điện trở và được kết nối tới ISP header. Khi ta nạp lại chương trình vào E2 thì khi đó chân được tự động nối đất trong thời gian nạp lại vào trong E2 và được đẩy vào chip FPGA trong thời gian sau khi khởi động lại. Việc này làm chuyển E2 từ chỗ được kết nối tới Altera thành được kết nối tới programmer. Sau khi việc lập trình hoàn tất, người sử dụng chỉ phải nạp lại hay reset lại DSO để nạp lại và bo mạch là có thể sử dụng lại DSO với những tính năng đã được cập nhật dữ liệu cấu hình mới từ chip bộ nhớ. 3.2.2 Chế độ tiền trigger Việc ghi dữ liệu trước điểm trigger rất hữu ích khi chúng ta dò lỗi hệ thống. thực hiện việc này bằng cách ta để cho DSO ghi những tín hiệu liên tục đi vào, tiến trình ghi dữ liệu này được kết thúc khi 1 xung (pulse) trigger được dò thấy trong hệ thống. Nội dung dữ liệu sẽ được ghi vào bộ nhớ tại thời điểm trước của điểm trigger được dò thấy. Quá trình này được thực hiện bằng cách điểu khiển thời gian của cả hai tiến trình dò tìm điểm trigger và khi đó sẽ kết thúc việc ghi dữ liệu khi điểm trigger được dò thấy trong tiến trình. Việc này được thực hiện cùng với 1 bộ đếm (counter) 19bit đó là một khóa từ tín hiệu mẫu giống như FIFO, vị vậy khi giá trị của counter bằng độ lớn địa chỉ của bộ nhớ thì việc ghi được dừng lại.Giá trị của những sườn trước trigger có thể được thiết đặt bởi pre-loading giá trị counter đó là một giá trị giữa 0 (không tiền trigger) và 393216 (cỡ của bộ nhớ và là lớn nhất của pre-trigger). Số 393216 là 0x60000 trong hệ HEX, điều đó có nghĩa là số logic duy nhất là 2bit đầu tiên của counter được dùng để dừng việc ghi. Dữ liệu được bắt đầu ghi tại bất kì địa chỉ nào của bộ nhớ mà thang ghi địa chỉ trỏ tới nhưng khi bắt đầu ghi tại điểm này ta phải ghi tuẩn tự kể từ đó. Khi thực hiện đếm tiếp counter 19bit lần thứ hai .Nó được sử dụng để nhận dạng quá trình tiếp theo và lại bắt đầu ghi vào bộ nhớ tử địa chỉ ở ô nhớ đầu tiên, dữ liệu sẽ được ghi đè lên nhưng dữ liệu có trong bộ nhớ trước đó. Bộ counter được reset lại tại cùng một thời điểm giống như điểm bắt đầu ghi tại FIFO và chạy từ tín hiệu lấy mẫu đầu tiên, vì vậy giá trị được lưu trữ nếu counter có giá trị nhỏ hơn không gian của bộ nhớ nếu bằng thì nó sẽ được reset về điểm bắt đầu và sau đó là bắt đầu điểm ghi lại tại điểm đầu của bộ Nguyễn Văn Thông K49ĐB 33
  • 40. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA nhớ. Trước khi dữ liệu được truyển tới máy tính giá trị của counter được sử dụng để đọc tuần tự những dữ liệu có trong bộ nhớ như hình 21 phía dưới: Bộ counter được reset lại khi giá trị đếm của nó là lớn hơn cỡ của bộ nhớ. Bởi vì counter bao gồm số zero nó sẽ đếm tại 0x60001, theo lí thuyết bộ counter sẽ được reset về điểm bắt đầu khi nó đếm tới số lớn nhất có thể và được đồng bộ cùng với thời điểm ghi (đây là hiệu ứng chất dồn). Tất cả quá trình này được thực hiện và xử lú bên trong một con chip FPGA. Bắt đầu Điểm ghi trigger Kết thúc Bắt đầu Giữa Trước khi sắp xếp Bắt đầu Kết thúc của bộ của bộ nhớ nhớ Bắt đầu Kết thúc Start Giữa End End End Sau khi sắp xếp Hình 21: Sự sắp xếp của bộ nhớ 3.2.3 Dò điểm trigger Trigger unit là đơn vị thực hiện bên trong chip FPGA nó có nhiệm vụ, giám sát cả hai kênh cho giá trị điểm trigger (giống như hình dưới đây) . Tất cả những số từ được lưu trữ là lớn hơn, bằng hay nhỏ hơn giá trị của mỗi thanh ghi nó đảm bảo rằng mỗi thanh ghi không bị tràn khi lưu trữ. Bằng cách thay đổi giá trị của mỗi thanh ghi được người sử dụng để có thể thay đổi mức của trigger. Dưới đây là bảng chân lí để thực hiện mỗi trigger unit Nguyễn Văn Thông K49ĐB 34
  • 41. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Không phải đầu ra từ ADC mà cũng không phải đầu ra từ logic buffer mà nó được chờ đợi để thay đổi chính xác tại cùng một thời điểm giá trị có thế xuất hiện trên bus. Ví dụ như việc thay đổi từ 12 tới 10 và giá trị 14 xuất hiện trong bus, giống như mô tả dưới đây. Nó có thể xuất hiện khi mất sườn trigger. Giải pháp cho việc này là xung clock phải đồng bộ dữ liệ vì vậy đầu ra từ trigger unit được chọn là mẫu duy nhất khi dữ liệu trên bus.Chúng ta thực hiện bằng cách đặt một trigger D ngay tại đầu ra của mạch trigger để đồng bộ xung nhịp hệ thống này và thu được một tín hiệu ra là đồng bộ.. Trạng thái cuối cùng trong đơn vị dò điểm trigger chuyển đổi cấp độ trigger dài hơn bình thường bằng trạng thái đầu tiên trong sườn trigger.Công việc hoàn thành bằng cách duy nhất là chuyển tiếp 1 nếu đường trigger có giá trị 0, vì vậy mà đầu ra duy nhất ở mức cao khi trong đó có sự truyền từ thấp tới cao và xuất hiện sườn. Bằng Nguyễn Văn Thông K49ĐB 35
  • 42. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA cách thiết đặt tại trig-sel bus tới 0x3 được người sử dụng để không cho phép trigger và bắt đầu quá trình ghi trực tiếp. 3.3.4 Bộ tạo xung Việc tạo ra xung clock rất hữu ích bởi nó có thế thay đổi tần số lấy mẫu, cho phép người sử dụng tới việc chuyển đổi độ dài quá trình ghi lại tần số lấy mẫu. Trong hệ thống chính xung clock cung cấp bởi tần số 50MHz TTL của máy tạo xung, nó được dùng bằng tinh thể thạch anh. Đó là được cấu hình bên trong chip FPGA nới nó được chi tần. Ở đây ta có thế chia tần theo bằng cách dung một bộ đếm counter 5bit khi đó ta sẽ thu được tần số mới có tỉ lệ là là ½,1/4,1/8,1/26,1/32 so với tần số hệ thống.Chúng ta sử dụng một bộ hợp kênh để chọn tần số thích hợp cho xung clock của DSO, ta có thể thấy tròng hình. Để cung cấp cùng tần số lấy mẫu cho hai kênh ta phải cung cấp cho chúng lệch nhau 1800 để đảm bảo được tín hiệu lấy mẫu tốt, vì vậy ta có thế dùng một mạch “not” để cung cấp cho một thanh ghi dịch. Rất nhiều thiết bị trong FPGA và cả hai FIFO’s cần truyền dữ liệu tới PC vì vậy để thực hiện điều này ta cần sử dụng bus ba trạng thái(tri-state bus), nó được biểu diến dưới hình sau: Bus ba trạng thái Cổng song Bộ đệm song FPGA FIFO A FIFO B Hình 22: BUS dữ liệu ra Bởi vì việc điều khiển trong FPGA là định hướng chân trên mọi chip đệm và nó cũng cho phép đầu ra (/OE) trên FIFO’s, nó hoạt động giống như một bước đệm trung gian kết nối giữa chúng để tránh xung đột dữ liệu khi cả hai cùng xuất dữ liệu ra bởi vì bus chỉ cho một dữ liệu ra trong cùng một thời điểm các đầu ra còn lại đều được để ở mức trở kháng cao. Chúng ta dùng buffer chuẩn là 74LS245, bởi vì điện dung kí sinh Nguyễn Văn Thông K49ĐB 36
  • 43. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA của nó thấp hơn cổng song song mà ở đây chúng ta dùng cổng song song để giao tiếp với máy tính. Giống như là chip đệm các chân của nó cũng có thể thay đổi dễ dàng nếu nó bị hư. Bus ba trạng thái giữa ADCs và đệm logic thì được kết nối cũng có những tính chất điều khiển như bus của cổng song song, trong đầu ra một ADC và đệm logic tới một bus mà cả hai FPGA và FIFO cùng kiểm soát. Hình 23: Sơ đồ logic của 74LS245 3.3.6 Giao diện logic cổng song song Điều khiển logic phụ thuộc vào rất nhiều yếu tố như các đường điểu khiển để thiết đặt hệ số chia tần, điểm trigger….trong đó được tạo ra bằng giao diện logic cổng song song. 4bit đầu tiên của bus điều khiển cổng song song được sử dụng giống như bus dữ liệu. Dữ liệu trên bus được chốt lại trong thanh điều khiển bằng các xung còn lại của đường điều khiển, để chặn lại những tín hiệu không bình thường trên cổng song song xuất hiện bên trong DSO. Đầu ra của con chốt này được cấu hình vào lối vào của một bộ giải mã tới việc tăng lên số đường có thể. Một vài đường này là được sử dụng để chốt dữ liệu từ bus dữ liệu chính của cổng song song bên trong một thanh ghi 4 Nguyễn Văn Thông K49ĐB 37
  • 44. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA hoặc 8 bit. Nó cung cấp tất cả đường điều khiển có thể có. Những đường điều khiển còn lại của bộ mã hóa được sử dụng cho xung đọc FIFO (RCLK) và cho phép đầu ra trên bus từ FPGA. 3.3.7 Điều khiển ADC Khi DSO là có một kênh thì cả hai chế độ đầu ra là là tín hiệu xung PAM giống như tín hiệu số và tín hiệu đầu vào là tín hiệu tương tự được xen kẽ nhau. Bất kì sự khác nhau nào của tín hiệu đầu ra cũng gây ra nhiễu, giống như sự xen kẽ của mẫu tín hiệu sẽ có sự khác nhau tại giá trị hiện thời nếu có nội dung của tín hiêu tương tự đầu vào. Sự chuyển đổi tín hiệu tương tự thành tín hiệu số phụ thuộc vào 2 giá trị tham chiếu của điện áp (1 cho biên độ và 1 cho thế offset). Nó được quyết định sử dụng tín hiệu tham chiếu bên ngoài như là xây dựng một cái ADC, nó nghĩa là theo lí thuyết thì nó nghĩa là sự cấu hình để chuyển đổi cả hai yếu tố của điện thế, ở đây cao nghĩa là chúng ta có thế lấy ngay tín hiệu bên ngoài là câc đường logic để đưa ra công song song, nó thường có nhiễu là nhỏ nhất. Mặc dù có thể tìm thấy sự khác biệt về biên độ cung với sự khác biệt về đầu ra và băng thông đủ lớn. Vì lí do này nó được quyết định để sử dụng một kết thúc khi điện áp là 2.5V thì cấu hình trong ADC thì đầu vào có thế thay đổi 0.5V nơi mà V DC là độ dốc của dòng một chiều. Để điều khiển của đầu vào của ADC thì phải tuân theo các công thức sau: 0.5<Vin<4.5 Theo lí thuyết thì VDC phải như sau: 1 < VDC < 4 Trong DSO thì VDC được cung cấp bời nguồn tạo điện áp thứ hai và có một giá trị là 1.25V, nó đưa ra như sau: 0.75<Vin<1.75 Bộ khuêch đại được cấu hình lại cho 2 giá trị điện áp là: 0.375<Vinput<0.875 Bằng việc chọn kiều của định dạng dữ liệu (DFS) của chân ADC hoạt động ở mức cao hoặc thấp dữ liệu có thế tuôn ra giống như những số offset nhị phân hoặc là số bù 2. Thiết đặt định dạng đầu vào tới offset để giảm nó xuống là rất phức tạp của trigger logic và theo lí thuyết là số ô logic được sử dụng vào việc đồng bộ. ----------------- Nguyễn Văn Thông K49ĐB 38
  • 45. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Chương 4 CHƯƠNG TRÌNH VÀ MÔ PHỎNG TRÊN KIT DE2 4.1 TỔNG QUAN VỀ KIT DE2 VÀ CHIP CYCLONE II Bởi vì thời gian thực hiện để tài ngắn nên em không làm ra được mạch em chỉ mô phỏng trên Kit phát triển DE2 của Altera với họ FPGA của hãng này là Cyclon II với chip là EP2C35F672C6. Với dòng chip này thì tài nguyên của nó lớn hơn rất nhiều so với FLEX 8K của hãng. Hình 24: Sơ đồ khối ghép nối giữa Cyclone II với các thành phần trên KIT Nguyễn Văn Thông K49ĐB 39
  • 46. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Hình 25:sơ đồ các thành phần trên kit DE2 Hình 26:Sơ đồ khối của Cyclone II Chíp Cyclone II còn có tài nguyên rất phong phú trong đó:  Có 33.216 LE: thành phần nhỏ nhất trong chip là thành phần logic (logic element). Mỗi LE (Logic Element) có thể được cấu hình thành một Fip- Flop D,T,JK hay RS. Mỗi một thành phần này cũng có các đầu và là data, clock, enable,clear và đầu ra cũng là data. Chúng cung có thể cấu hình thành các thành phần cơ bản khác trong mỗi ứng dụng. chúng cũng có thể Nguyễn Văn Thông K49ĐB 40
  • 47. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA cấu hình thanh các LUT (Loop Up Table). Để sử dụng cấu hình các LE thành các thanh ghi hay là thành các LUT là tuỳ thuộc vào người sử dụng lập trình trên các phần mềm như QUATUS II. Khi lập trình xong và download vào chip thì chương trình của mình sẽ tự động tạo ra nhứng thanh ghi hay những LUT tuỳ thuộc vào chưong trình của mình. Hình dưới mô tả quá trình cấu hình các LE thành các ứng dụng của mình như mong muốn khi lập trình các ứng dụng của mình và download vào bên trong chip Cyclone II thì chương trình bên trong sẽ tự động dồn các thành phần logic của ta vào chung một khu vực để giảm bớt tài nguyên. Tuy nhiên để đảm bảo việc sử dụng tài nguyên một cách hiệu quả còn phải phụ thuộc nhiều và kĩ năng lập trình và thiết kế của người kĩ sư. Hình 27:Sơ đồ khối của LAB  Có 105 khối M4K RAM: các khối M4K nội dung được chứa trong các cột của M4K cảu các khởi bộ nhớ, Mỗi khối này thì bao gồm các đầu vào là các thanh ghi được được ghi đồng bộ và đầu ra là các được thiết kế theo chế độ đường ống. Các đầu ra các thanh ghi có thể được đẩy qua nhưng các đầu vào thì không thể làm thế được. Từ các thành phần này ta có thể có các bô nhớ là dual-port hay là sinple-port. Các bộ nhớ ở đây ta có thể dùng như RAM hay ROM hay các bộ đệm FIFO. M4K có thể hỗ trợ cho: Nguyễn Văn Thông K49ĐB 41
  • 48. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA • 4,608 bit RAM. • Có thể thực hiện ở tần số 250MHz. • hỗ trợ cho cả bộ nhớ đơn cổng hay hai cổng riêng biệt. • có thể cấu hình thành các thanh ghi dịch, các bộ đệm FIFO. • có thể cấu hình thành các ROM…. Hình 28:Sơ đồ khối của M2K RAM  Có tổng cộng 483,840 bits RAM.  4 PLLs (vòng khóa pha).  Có 475 chân I/O để sử dụng: tất cả các chân I/O đều được gắn cùng nhau trên các banks I/O. Trong Cyclone II thì có tất cả 4 banks I/O. Trong đó thì bank 2 và banks 4 có thể hỗ trợ cho các kết nối với DDR2 và có thể up tới 167MHz/333Mbps và QDR có thể úp lên tới 167MHz/668 Mbps. Còn các bank 1 và 3 thì chỉ hỗ trợ duy nhất cho các giao diện của SDR và DDR SDRAM. tất cả các bank của Cyclone II có thể hỗ trợ cho các bộ nhớ SDR có thể úo lên hoạt động ở 167MHZ/167Mbps và bộ nhớ DDR và có thể hoạt động ở 167MHz/333Mpbs. Nguyễn Văn Thông K49ĐB 42
  • 49. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Hình 29:Sơ đồ bố chí các thanh chân trên Cyclone II  Nó được đóng gói với 672 chân. Chương trình có thể được nạp trực tiếp từ phần mềm QUATUS II xuống chíp qua một cáp USB. Ngoài ra trong KIT này còn có rất nhiều tài nguyên nữa như:  Có 512 KB SRAM trong đó có 256 KB địa chỉ và có thể chứa dữ liệu với độ dài 16 bit.  Có 8MB bộ nhớ SDRAM trong đó trong đó có thể có tới 1 MB địa chỉ và có thể chứa dữ liệu lên tới 16 bít và có 4 banks tất cả.  Có 8MB bộ nhớ Flash và có thể chứa dữ liệu có độ rộng bít tối đa là 8bits  Nói chung trên KIT này để thực hành nghiên cứu và phát tiển thì rất hứu ích. Bởi vì phải mô phỏng và làm thử nghiệm trên kít này và tài nguyên của con Cyclone II rất nhiều lên lên em dùng cả RAM trong chip bằng cách cấu hình bên tròn nhờ các tool hỗ trợ, em cũng thử nghiệm các đường bằng cách làm một sóng SINE giả Nguyễn Văn Thông K49ĐB 43
  • 50. Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA lập số với các mẫu là 8 bít. Coi như đây là các xung PAM đã được lấy mẫu qua ADC và được kết nối tới các thành phần khác trong thiết kế. 4.2 CHƯƠNG TRÌNH VÀ MÔ PHỎNG 4.2.1. Chương trình chính điểu khiển DSO Hình 30: Sơ đồ khổi điều khiển của DSO Hình trên này là sơ đồ khối tổng quát của bộ điều khiển của DSO được tạo ra từ phần mềm Quatus II sau khi chạy chương trình được viết thì nó tạo ra. Phần code của chương trình này được đặt ở phần phụ lục bên dưới. Trong hình này được chia thành các khối chính là :khối điều khiển logic cổng song, khối điều khiển FIFO, khối tạo xung để chia tần, khối điều khiển dò điểm trigo. Nguyễn Văn Thông K49ĐB 44