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

Sử dụng VHDL thiết kế bộ đếm tiền chẵn từ 00 – 98 hoặc Đếm lẻ từ 01 – 99 hiển thị trên LED 7 thanh có tín hiệu SELECT, RESET, START, STOP.

36 3,2K 21

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 2,39 MB
File đính kèm báo cáo ver2.rar (2 MB)

Nội dung

CHƯƠNG I. GIỚI THIỆU CHUNGI. TỔNG QUAN VỀ NGÔN NGỮ VHDL“Very High Speed Integrated Circuit” là ngôn ngữ chuẩn trong công nghiệp, được sử dụng để mô tả phần cứng từ mức trừu tượng tới mức tối cụ thể. VHDL nhanh chóng trở thành một ngôn ngữ được sử dụng rộng rãi trên thế giới cho những thiết kế có độ phức tạp trung bình. Các thiết kế sử dụng ngôn ngữ VHDL được hỗ trợ bởi máy tính, FPGA, các tiêu chuẩn trên VHDL được hỗ trợ bởi công cụ của nó, các công cụ này bao gồm: mô phỏng, tổng hợp, định đường đi…VHDL là một nhánh của chương trình “Very High Speed Integrated Circuit”(VHSIC), được phát triển bởi Department of Defense vào đầu thập niên 80. Mục tiêu của chương trình VHSIC là tạo ra những mạch điện được tích hợp thông dụng mới. Những người tham gia chương trình muốn đẩy mạnh hơn nữa việc giới hạn công nghệ trong giai đoạn thiết kế và sản xuất ra các vi mạch tích hợp.Chương trình đã đạt được những thành công đáng ngạc nhiên, nhưng trong quá trình phát triển những mạch điện có độ phức tạp lớn, người thiết kế căn cứ vào những công cụ đã được sử dụng để tạo ra những thiết kế lớn thì không có đầy đủ, các công cụ hỗ trợ cho người thiết kế hầu hết ở mức cổng. Tạo ra một thiết kế sử dụng hàng trăm, hàng nghìn cổng mà sử dụng dạng mức cổng thì thật sự là một nhiệm vụ cực kỳ khó khăn. Chính vì thế một phương pháp mô tả mới được ra đời đó là VHDL. Ban đầu VHDL được thiết kế như một ngôn ngữ dùng chung để cung cấp các tài liệu và mô phỏng. Sau đó VHDL đã bao gồm các công cụ tổng hợp để tả thiết kế ở mức thanh ghi.Vào 1981, ngôn ngữ mô tả phần cứng đã được đề nghị và được gọi là VHSIC Hardware Description Language mà ngày nay chúng ta gọi là VHDL. Mục đích của ngôn ngữ mới này bao gồm 2 phần: Đầu tiên người thiết kế muốn có một ngôn ngữ giúp họ có thể vận dụng để mô tả các mạch điện phức tạp, kế tiếp tiếp họ muốn ngôn ngữ đó trở thành một chuẩn để tất cả mọi người làm việc trong một môi trường VHSIC có thể phân phối các thiết kế của họ tới những người khác trong một định dạng chuẩn. Từ những chương trình con có thể sắp xếp để tạo thành một chương trình chính với một định dạng chuẩn duy nhất.Năm 1986 VHDL đã đưa ra một chuẩn gọi là IEEE, chuẩn này đã qua một số lần thay đổi sửa chữa và công nhận là chuẩn IEEE 1076 vào tháng 12 năm 1987. 1. Các đặc điểm chính của ngôn ngữ VHDL Đặc tính tổng quát:VHDL có thể được sử dụng để lập tài liệu thiết kế, thiết kế mức độ cao, mô phỏng tổng hợp và kiểm tra phần cứng, nó cho phép kiểm tra phần cứng từ mức hệ thống tới mức cổng. Hỗ trợ tính đồng thời nghĩa là các hợp phần tử nhỏ đến lớn hoạt động tại mọi thời điểm Hỗ trợ phân cấp thiết kế:Khi thiết kế bằng VHDL người thiết kế có thể phân bài toán lớn thành những bài toán nhỏ hơn sao cho có thể giải quyết và quản lí dễ dàng. Đây là đặc tính thiết yếu của ngôn ngữ phần cứng đa cấp, thiết kế chứa một mô tả giao diện và các mẫu có thể dựa vào thư viện để sau khi dịch bởi chương trình dịch. Với đặc điểm này người thiết kế có thể có tạo ra những thư viện riêng có chứa các thành phần dàanh cho những thiết kế sau này mà không phải thiết kế lại, điều này cho phép người thiết kế rút ngắn thời gian thiết kế và quá trình thiết kế trở nên đơn giản hơn rất nhiều Các lệnh tuần tự:Khi người thiết kế phân chia hệ thống thành những hợp phần đồng thời hay những phần con, tiếp đó người thiết kế có thể mô tả hoạt động chi tiết bên trong bằng những cấu trúc ngôn ngữ lập trình như: case, ifthenelse, loop,... các lệnh tuần tự người thiết kế có thể mô tả hệ thống một cách dễ dàng và linh hoạt, ngoài ra còn giúp cho người làm việc chung một nhóm có thể dễ dàng hiểu được ý tưởng thiết kế của nhau để có sự phối hợp tốt hơn. Thiết kế tương thích chung:Để thiết kế tổng quát, ngôn ngữ VHDL cho phép người thiết kế đặt cấu hình mô tả hợp phần có thông số chung trong thiết kế, mô tả tương thích chung có thể thay đổi kích thích, đặc tính vật lý, định thời, đặc tính tải và mội trường hoạt động của thiết kế. Khai kiểu và cách dùng:Ngôn ngữ VHDL cho phép mô tả các biến số ở kiểu như: bit, Boolean, iteger, floating point, kiểu liệt kê, kiểu dãy, bản ghi, ngoài ra còn hỗ trợ các kiểu do người thiết kế định nghĩa. VHDL cũng cho phép người thiết kế định nghĩa các loại toán tử cho riêng mình để phục vụ cho quá trình thiết kế linh hoạt hơn. Sử dụng các chương trình con:Một đặc điểm đặc biệt của ngôn ngữ VHDL là cho phép đặc tả định thời ở tất cả các cấp, nó cho phép người thiết kế đặt giá trị của tín hiệu với thời gian chậm, định nghĩa tín hiệu đồng bộ, đặc tả độ rộng xung, các ràng buộc thời gian khác…, người thiết kế có thể căn cứ vào những điểm này để định các giá trị tín hiệu sao cho phù hợp với các thiết kế phần cứng. Đặc tả cấu trúc:

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU 3

CHƯƠNG I GIỚI THIỆU CHUNG 4

I TỔNG QUAN VỀ NGÔN NGỮ VHDL 4

1 Các đặc điểm chính của ngôn ngữ VHDL 5

2 Cấu trúc của một thiết kế dùng ngôn ngữ VHDL 6

II GIỚI THIỆU VỀ PHẦN MỀM QUARTUS II 9

CHƯƠNG II CÁC THÀNH PHẦN CƠ BẢN 11

I CỔNG LOGIC 11

II PHẦN TỬ NHỚ 12

1 D-Latch và D flip- flop 12

2 Các flip-flop khác 14

III LED 7 THANH 15

CHƯƠNG III THIẾT KẾ BỘ ĐẾM CHẴN TỪ 0-98 HOẶC ĐẾM LẺ TỪ 1-99 HIỂN THỊ LED 7 THANH CÓ TÍN HIỆU RESET, START, STOP, SELEC 18

I PHƯƠNG ÁN THIẾT KẾ 18

1 Các phương án thiết kế 18

2 Phân tích và lựa chọn phương pháp 19

II THIẾT KẾ KHỐI LOGIC 19

1 Các bước thiết kế bộ đếm 19

2 Thiết kế khối logic cho bộ đếm mod 10 hiển thi 1 LED 7 thanh 20

III CHƯƠNG TRÌNH LẬP TRÌNH VHDL 24

IV THIẾT KẾ MẠCH 26

1 Các file thiết kế 26

2 Cách thức mô phỏng hoạt động trong Quartus 29

V KẾT QUẢ MÔ PHỎNG 31

1 Giản đồ sóng 31

2 Sơ đồ thiết kế của bộ đếm chẵn 0-98 hoặc lẻ từ 1-99 33

3 Đánh giá kết quả 34

VI NGUYÊN TẮC HOẠT ĐỘNG 35

CHƯƠNG IV NHẬN XÉT ĐÁNH GIÁ 36

Trang 2

TÀI LIỆU THAM KHẢO 36

MỤC LỤC HÌNH ẢNH Hình 1 Giao diện Quatus II 9

Hình 2 Mô hình cổng logic cơ bản 10

Hình 3 Mạc điện cổng NOT 10

Hình 4 Tham số thời gian của cổng NOT 11

Hình 5 Đồ thị thời gian của D flip-flop và D Latch 12

Hình 6 Tham số thời gian của D flip flop 12

Hình 7 Hình ảnh Anode và Cathode chung 15

Hình 8 Mô tả mạch số bằng sơ đồ 17

Hình 9 Đồ hình trạng thái 19

Hình 10 Sơ đồ nguyên lý bộ ddeemss 4 bit 22

Hình 11 Sơ đồ thực hiện đếm mod 10 22

Hình 12 Đồ hình dạng xung đếm 22

Hình 13 Bộ đếm 2 chữ số thập phân 34

MỤC LỤC BẢNG Bảng 1 11

Bảng 2 13

Bảng 3 13

Bảng 4 14

Bảng 5 Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung 16

Bảng 6 19

Trang 3

LỜI NÓI ĐẦU

Hiện nay trên thị trường có rất nhiều loại ngôn ngữ cho vi mạch lập trìnhđược như Visual Basic, Assembly, C++, … cho các vi điều khiển họ PIC,89XX, GAL Ngoài ra, VHDL là ngôn ngữ mô tả phần cứng rất mạnh hỗ trợ chocác vi mạch được tích hợp theo công nghệ CPLDs, FPGAs người thiết kế có thểvận dụng nó vào thiết kế cụ thể như thiết kế mạch số , xử lý các phương trìnhlọc số, lập trình giao tiếp giữa máy tính kit Đồng thời kết hợp với các phầnmềm mô phỏng như Quartus hay Xilinx người dùng có thể đưa ra được các mẫuthiết kế cho một vi điều khiển hoàn chỉnh một cách đơn giản tiết kiệm nhiều thờigian cũng như công sức bởi ngôn ngữ VHDL có cấu trúc tương đối gần gũi vớingười sử dụng

Với yêu cầu thiết kế bộ đếm chẵn từ 0-98 hoặc đếm lẻ từ 1-99 hiển thịLED 7 thanh có tín hiệu SELEC, Stop, Start, Reset, chúng tôi đã tiến hành xâydựng một quy trình thiết kế cơ bản và thực hiện khoa học từng bước để việcthiết kế được hiệu quả và kết quả đang tin cậy, đồng thời bài báo cáo đã đem lạinhiều kiến thức khoa học cơ bản về thiết kế vi mạch cũng như kiến thức chuyênnghành và có ý nghĩa thực tiễn cho tương lai sau này

Trang 4

CHƯƠNG I GIỚI THIỆU CHUNG

I TỔNG QUAN VỀ NGÔN NGỮ VHDL

“Very High Speed Integrated Circuit” là ngôn ngữ chuẩn trong côngnghiệp, được sử dụng để mô tả phần cứng từ mức trừu tượng tới mức tối cụ thể.VHDL nhanh chóng trở thành một ngôn ngữ được sử dụng rộng rãi trên thế giớicho những thiết kế có độ phức tạp trung bình Các thiết kế sử dụng ngôn ngữVHDL được hỗ trợ bởi máy tính, FPGA, các tiêu chuẩn trên VHDL được hỗ trợbởi công cụ của nó, các công cụ này bao gồm: mô phỏng, tổng hợp, định đườngđi…

VHDL là một nhánh của chương trình “Very High Speed IntegratedCircuit”(VHSIC), được phát triển bởi Department of Defense vào đầu thập niên

80 Mục tiêu của chương trình VHSIC là tạo ra những mạch điện được tích hợpthông dụng mới Những người tham gia chương trình muốn đẩy mạnh hơn nữaviệc giới hạn công nghệ trong giai đoạn thiết kế và sản xuất ra các vi mạch tíchhợp

Chương trình đã đạt được những thành công đáng ngạc nhiên, nhưngtrong quá trình phát triển những mạch điện có độ phức tạp lớn, người thiết kếcăn cứ vào những công cụ đã được sử dụng để tạo ra những thiết kế lớn thìkhông có đầy đủ, các công cụ hỗ trợ cho người thiết kế hầu hết ở mức cổng Tạo

ra một thiết kế sử dụng hàng trăm, hàng nghìn cổng mà sử dụng dạng mức cổngthì thật sự là một nhiệm vụ cực kỳ khó khăn Chính vì thế một phương pháp mô

tả mới được ra đời đó là VHDL Ban đầu VHDL được thiết kế như một ngônngữ dùng chung để cung cấp các tài liệu và mô phỏng Sau đó VHDL đã baogồm các công cụ tổng hợp để tả thiết kế ở mức thanh ghi

Vào 1981, ngôn ngữ mô tả phần cứng đã được đề nghị và được gọi làVHSIC Hardware Description Language mà ngày nay chúng ta gọi là VHDL.Mục đích của ngôn ngữ mới này bao gồm 2 phần: Đầu tiên người thiết kế muốn

có một ngôn ngữ giúp họ có thể vận dụng để mô tả các mạch điện phức tạp, kếtiếp tiếp họ muốn ngôn ngữ đó trở thành một chuẩn để tất cả mọi người làm việctrong một môi trường VHSIC có thể phân phối các thiết kế của họ tới nhữngngười khác trong một định dạng chuẩn Từ những chương trình con có thể sắpxếp để tạo thành một chương trình chính với một định dạng chuẩn duy nhất

Năm 1986 VHDL đã đưa ra một chuẩn gọi là IEEE, chuẩn này đã qua một

số lần thay đổi sửa chữa và công nhận là chuẩn IEEE 1076 vào tháng 12 năm1987

Trang 5

1 Các đặc điểm chính của ngôn ngữ VHDL

- Đặc tính tổng quát:

VHDL có thể được sử dụng để lập tài liệu thiết kế, thiết kế mức độ cao,

mô phỏng tổng hợp và kiểm tra phần cứng, nó cho phép kiểm tra phần cứng từmức hệ thống tới mức cổng Hỗ trợ tính đồng thời nghĩa là các hợp phần tử nhỏđến lớn hoạt động tại mọi thời điểm

- Hỗ trợ phân cấp thiết kế:

Khi thiết kế bằng VHDL người thiết kế có thể phân bài toán lớn thành những bài toán nhỏ hơn sao cho có thể giải quyết và quản lí dễ dàng Đây là đặc tính thiết yếu của ngôn ngữ phần cứng đa cấp, thiết kế chứa một mô tả giao diện và các mẫu có thể dựa vào thư viện để sau khi dịch bởi chương trình dịch Với đặc điểm này người thiết

kế có thể có tạo ra những thư viện riêng có chứa các thành phần dàanh cho những thiết

kế sau này mà không phải thiết kế lại, điều này cho phép người thiết kế rút ngắn thời gian thiết kế và quá trình thiết kế trở nên đơn giản hơn rất nhiều

- Các lệnh tuần tự:

Khi người thiết kế phân chia hệ thống thành những hợp phần đồng thời hay những phần con, tiếp đó người thiết kế có thể mô tả hoạt động chi tiết bên trong bằng những cấu trúc ngôn ngữ lập trình như: case, if-then-else, loop, các lệnh tuần tự người thiết kế có thể mô tả hệ thống một cách dễ dàng và linh hoạt, ngoài ra còn giúp cho người làm việc chung một nhóm có thể dễ dàng hiểu được ý tưởng thiết kế của nhau để có sự phối hợp tốt hơn.

- Thiết kế tương thích chung:

Để thiết kế tổng quát, ngôn ngữ VHDL cho phép người thiết kế đặt cấuhình mô tả hợp phần có thông số chung trong thiết kế, mô tả tương thích chung

có thể thay đổi kích thích, đặc tính vật lý, định thời, đặc tính tải và mội trườnghoạt động của thiết kế

- Đặc tả cấu trúc:

Trang 6

Ngôn ngữ VHDL có cấu trúc để đặc tả phân rã cấu trúc của phần cứng ởtất cả các cấp.

2 Cấu trúc của một thiết kế dùng ngôn ngữ VHDL.

Một thiết kế phần cứng dùng ngôn ngữ VHDL bao gồm 4 phần:

- Entity( thực thể )

Khai báo entity chỉ dùng để mô tả ngõ vào và ngõ ra của một thiết kế.Mức cao nhất của bất kỳ một thiết kế VHDL là một khai báo entity đơn, khithiết kế trong VHDL tên của file lưu trữ phải trùng với tên theo sau từ khóaentity

Ví dụ:

Entity dec2to4 isPort ( w : instd_logic_vector(1 down to 0);

En : in std_logic;

Y : out std_logic_vector(0 to 3));

End dec2to4;

Trong khi khai báo entity mỗi tín hiệu có thể có 1 kiểu in, out, buffer và

có thể có 1 loại bit, bit_vector, kiểu tín hiệu sẽ quyết định tín hiệu đó được entityđọc hay ghi, có 4 kiểu tín hiệu khác nhau

In: Kiểu tín hiệu này mô tả dòng data đi vào entity và entity sẽ không ghitới những tín hiệu này Kiểu In thì được sử dụng cho các ngõ vào clock, ngõ vàođiều khiển và các data chỉ có duy nhất 1 hướng là đưa tới các ngõ vào

Out: Kiểu tín hiệu này mô tả dòng data đi ra khỏi entity, entity sẽ khôngthể đọc các tín hiệu này, kiểu out chỉ được sử dụng khi tín hiệu không được sửdụng bởi bất kì kiểu nào trong entity

Buffer: Kiểu tín hiệu này mô tả dòng data đi ra khỏi entity, nhưng entity

có thể đọc những tín hiệu kiểu này ( cho phép đối với mục đích sử dụng muốnđọc lại tín hiệu ngõ ra ở bên trong của cấu trúc) Tuy nhiên, tín hiệu sẽ khôngđiều khiển từ ngõ ra entity, vì vậy nó không thể được sử dụng cho các data ngõvào

Inout: Kiểu tín hiệu này cho phép tín hiệu có thể có cả hai kiểu: vào và ra,khi khai báo tín hiệu theo kiểu inout thì tín hiệu có thể được điều khiển từ ngõ racủa entity Kiểu tín hiệu này chỉ nên sử dụng khi thật cần thiết và khi sử dụngkiểu tín hiệu này mã của chương trình trở nên khó hiểu cho người thiết kế

Loại tín hiệu nào cũng phải được mô tả trong khai báo (“port”), tín hiệu sẽ

mô tả có giá trị mà tín hiệu đó có thể được ấn định, ngoài ra có thể mô tả 1vector những tín hiệu có cùng loại

a Architecture

Trang 7

Chức năng kiến trúc trong một thiết kế là liên hệ giữa các tín hiệu ngõ vào

và các tín hiệu ngõ ra theo nhũng gì mà người thiết kế đã ấn định trong phầnthân kiến trúc, người thiết kế có thể viết theo nhiều kiến trúc khác nhau trongmột thực thể, nhưng chỉ một trong số đó có khả năng xuất hiện trong mã VHDLcủa người thiết kế Cấu trúc của một chương trình có dạng như sau:

Architecture behavioral of component_ name is

…Các tín hiệu nội được liệt kê

…Các thành phần được liệt kê

Begin

…Các thành phần để trình bày các phát biểu của kiến trúc

…End component_ name;

Có 3 kiểu phát biểu cho kiến trúc, người thiết kế có thể kết hợp nhiều kiểutrong thiết kế của mình, tuy nhiên người thiết kế nên phân biệt sự khác nhau ởmỗi kiểu, bởi vì đôi khi không thể đổi chỗ giữa hai kiểu khác nhau

Phần tới thực thể, đối với các thiết kế có cấu trúc, configuration thể hiện

là những phần được liệt kê cho kiểu đó, đối với những configuration ban đầu thì

có thể ấn định tới rất nhiều kiến trúc trong 1 thực thể Khi 1 thực thể và đi cùngvới nó là một kiến trúc được biên dịch và trong 1 thư viện thì nó sẽ trở thànhmột thành phần có thể được liên kết

Nếu người thiết kế muốn sử dụng một hợp phần trong 1 kiến trúc để cónhững tên port khác nhau từ những hợp phần mô tả trong đó, một hợp mới sẽ cónhững port được liên kết tới những tín hiệu riêng với chức năng này, thư việncủa những hợp phần có thể được kết hợp và liên kết dễ dàng

- Định cấu hình

Định cấu hình sẽ cho phép người thiết kế tiện lợi hơn trong thiết kế củamình, người thiết kế có thể mô phỏng các thiết kế của mình ở thành phần con,như vậy sẽ dễ dàng kiểm tra thiết kế hơn chương trình lớn

Ví dụ: ta có 3 thân kiến trúc lần lượt gọi là FA_BEH, FA_STR vàFA_Mixed tương ứng với một thực thể entity FULL_ADDER Một kiến trúc bất

kì có thể được chọn để mô phỏng bằng cách đặt tả cấu hình thích hợp

Tương tự như trường hợp trên có thể mô tả bằng cách kết nối một thànhphần với một tập thực thể bất kỳ Khai báo thành phần bất kì có thể gồm có tênthành phần và tên, kiểu số lượng cổng và các thông số chung của thực thể này

Ví dụ: một khai báo hợp như sau:

Component and2Port(a,b: in bit;

Trang 8

Và các thực thể mà thành phần này có thể bị là:

Entity and_generic isPort( n: out bit;

L,m: in bit);

End and_generic;

Entity and_hs isPort( n: out bit;

L,m: in bit);

End and_hs;

Tên thành phần, tên thực thể, cũng như tên cổng và thứ tự của chúng làkhác nhau Trong trường hợp này người thiết kế có thể dùng thực thể and_hscho thành phần and2 và trong trường hợp khác là thực thể là and_generic Lợithế là ở chỗ khi các thành phần được sử dụng trong thiết kế cho các cổng vàthành phần của chúng có thể sử dụng tên tùy ý và sau đó có thể được liên kết tớicác thực thể trước khi mô phỏng Vì vậy một cấu trúc được dùng để nối từng cặpnhư sau:

- package

Mục đích chính của package là gói gọn những thành phần riêng lẻ để cóthể dùng chung cho những thiết kế khác nhau Một package là một vùng lưu trữchung để giữa các data dùng chung trong một số các thực thể Mô tả data bêntrong một package cho phép data được tham khảo bởi một thực thể khác vì vậydata có thể được dùng chung

Một package bao gồm 2 thành phần: phần dùng để mô tả và phần thân củapackage, phần mô tả dùng để định nghĩa giao diện cho package, phần thân dùng

để ấn định các hoạt động cụ thể của package

- Khai báo khối

Một khối khai báo bao gồm một tập hợp những khai báo chung, các khaibáo này có thể được dùng chung cho nhiều thiết kế Khai báo khối tạo ra giaodiện cho khối đó, nó định nghĩa các đối tượng có thể được dùng cho các thiết kếkhác, khi khối đã được khai báo thì người thiết kế có thể truy xuất tới khối tạibất kì những thiết kế nào của mình mà cần phải sử dụng tới các thiết kế có trướctrong khối Cú pháp khai báo được xác định là:

Package package-name isCác khai báo khối có thể chứa các khai báo sau:

- Subprogram delaration

- Type, subtype delaration

- constant, deferred constant delaration

- signal delaration creates a global signal

- file delaration

Trang 9

- alias delaration

- attribute delaration, a user_ define attribute

- Attribute specification

- use clauseTất cả các đối tượng được khai báo trong khối thì có thể được truy xuấtbởi bất kì 1 thiết kế nào đó chỉ cần sử dụng mệnh đề use và khai báo thư viện,giao diện cuả một khối bao gồm bất kì một chương trình con hoặc các hằng sốđược khai báo trong khối đó, các chương trình con hoặc các hằng số đó cần phảiđược đáp ứng tới thân của chúng, nghĩa là chúng cần có những hoạt động cụ thể

đã được mô tả trước khi đưa vào trong khối Khi đưa vào trong khối cần phảituân thủ thưa tự các thành phần trong thực thể mà nó được mô tả VHDL sẽkhông hiểu được khi biên dịch một chương trình mà khai báo khối các thứ tự vớinhững gì mà nó mô tả trước đó

II GIỚI THIỆU VỀ PHẦN MỀM QUARTUS II

Quartus II là công cụ phần mềm phát triển của hãng Altera, cung cấp môitrường thiết kế toàn diện cho các thiết kế SOPC (hệ thống trên 1 chip khả trình -system on a programmable chip)

Đây là phần mềm đóng gói tích hợp đầy đủ phục vụ cho thiết kế logic vớicác linh kiện logic khả trình PLD của Altera, gồm các dòng APEX, Cyclone,FLEX, MAX, Stratix Quartus cung cấp các khả năng thiết kế logic sau:

- Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo cácngôn ngữ: AHDL, VHDL, và Verilog HDL

- Thiết kế LogicLock

- Là công cụ mạnh để tổng hợp logic

- Khả năng mô phỏng chức năng và thời gian

- Phân tích thời gian

- Phân tích logic nhúng với công cụ phân tích SignalTap@ II

- Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chươngtrình

- Tự động định vị lỗi

- Khả năng lập trình và nhận diện linh kiện

- Phần mềm Quartus II sử dụng bộ tích hợp NativeLink@ với các công cụthiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụthiết kế phần cứng EDA khác

Quartus II cũng có thể đọc các file mạch (netlist) EDIF chuẩn, VHDL vàVerilog HDL cũng như tạo ra các file netlist này

Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết

mã, biên dịch, soát lỗi, mô phỏng

Trang 10

Với Quartus có thể kết hợp nhiều kiểu file trong 1 dự án thiết kế phân cấp.

Có thể dùng bộ công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo ra sơ đồkhối mô tả thiết kế ở mức cao, sau đó dùng các sơ đồ khối khác để tạo ra thànhphần thiết kế mức thấp

Quartus II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảofile thiết kế trong khi vẫn có

thể biên dịch hay chạy mô

phỏng các dự án khác Công

cụ biên dịch Quartus II nằm ở

trung tâm hệ thống, cung cấp

quy trình thiết kế mạnh cho

phép tùy biến để đạt được thiết

kế tối ưu trong dự án Công cụ

định vị lỗi tự động và các bản

tin cảnh báo khiến việc phát

hiện và sửa lỗi trở nên đơn

giản hơn

Sau khi cài Quartus II,

giao diện như hình vẽ: Hình 1 Giao diện Quatus II

Trang 11

CHƯƠNG II CÁC THÀNH PHẦN CƠ BẢN

I CỔNG LOGIC

Cổng logic hay logic gate là cấu trúc mạch điện (sơ đồ khối hình ) đượclắp ráp từ các linh kiện điện tử để thực hiện chức năng của các hàm logic cơbản y= f(xn,xn-1,….x1,x0) Trong đó các tín hiệu vào xn-1,xn-2,…x1, x0 của hàm Tínhiệu ra y của mạch tương ứng với hàm logic y Với các cổng cơ bản thường giátrị n≤ 4

Hình 2 Mô hình cổng logic cơ bản

Giá trị của các tín hiệu vào và ra chỉ có hai mức là mức thấp (Low - L)

và mức cao (High - H) tương ứng với với hai giá trị 0 và 1 của các biến logic

Các mạch logic đều được biểu diễn bằng các hệ hàm logic và do đó có thểphát biểu là: Mọi mạch logic đều có thể xây dựng từ các cổng logic cơ bản

Đối với các cổng logic cơ bản đó thì có hai tham số thời gian cơ bản:

Trang 12

Hình 4 Tham số thời gian của cổng NOT

Thời gian trễ lan truyền Tpd (Propagation delay) là thời gian tối thiểu kể

từ thời điểm bắt đầu xảy ra sự thay đổi từ đầu vào X cho tới khi sự thay đổinày tạo ra ra thay đổi xác định tại đầu ra Y, hay nói một cách khác cho tới khiđầu ra Y ổn định giá trị

Tcd (Contamination delay) là khoảng thời gian kể từ thời điểm xuất hiện

sự thay đổi của đầu vào X cho tới khi đầu ra Y bắt đầu xảy ra sự mất ổn định.Sau giai đoạn mất ổn định hay còn gọi là giai đoạn chuyển tiếp tín hiệu tại đầu

ra sẽ thiết lập trạng thái xác định vững bền Như vậy Tpd > Tcd và khi nhắc đến

độ trễ của cổng thì là chỉ tới giá trị Tpd

II PHẦN TỬ NHỚ

1 D-Latch và D flip- flop

Latch và Flip-Flop là các phần tử nhớ quan trọng trong thiết kế VLSI,

sơ đồ cấu tạo chi tiết và mô tả đã được trình bày kỹ trong phần Kỹ thuật số Ởphần này chỉ nhắc lại những tính chất cơ bản nhất của các Flip-Flop và bổ xungthêm các tham số thời gian thực của các phần tử này

Bảng 1

D-Latch là phần tử nhớ làm việc theo mức xung, cụ thể khi tín hiệuClock bằng 1 thì giá trị Q đầu ra bằng giá trị đầu vào, khi tín hiệu Clock = 0 thìgiá trị đầu ra không đổi Nói một cách khác D-latch làm việc như mộtcửa đóng mở giữa tín hiệu Q và D tương ứng với mức điện áp của xung Clock

D-flip-flop là phần tử nhớ làm việc theo sườn xung, có hai dạng sườn làsườn lên (rising edge) khi xung thay đổi từ 0->1 và sườn xuống (falling edge)

Trang 13

khi xung thay đổi từ 1->0 Khi không có yêu cầu gì đặc biệt thì Flip-flop làmviệc với sườn xung lên thường được sử dụng Khác với D-latch giá trị đầu ra củaFlipFlop chỉ thay vào thời điểm sườn xung Với cách làm việc như vậy giá trịđầu ra sẽ không thay đổi trong suốt thời gian một chu kỳ xung nhịp dù cho tínhiệu đầu vào thay đổi D Flip-flop rất hay được dùng trong mạch có nhớ vì vậyđôi khi nói đến phần tử nhớ thường ngầm hiểu là D Flip-flop.

Hình 5 Đồ thị thời gian của D flip-flop và D Latch

Đối với D-flip-flop và D-latch nhớ thì có hai tham số thời gian hếtsức quan trọng là Tsetup, và Thold Đây là tham số thời gian đối với dữ liệuđầu vào cổng Din để đảm bảo việc truyền dữ liệu sang cổng ra Qout là chínhxác, cụ thể đối với Flip-flop

Tsetup: là khoảng thời gian cần thiết cần giữ ổn định đầu vào trước sườntích cực của xung nhịp Clock

Thold: Là khoảng thời gian tối thiểu cần giữ ổn định dữ liệu đầu vào sausườn tích cực của xung nhịp Clock

Hình 6 Tham số thời gian của D flip flop

Trang 14

Trạng thái khi R= 1, S= 1 là trạng thái cấm vì khi đó đầu ra nhận giá trịkhông xác định, thực chất sẽ xảy ra sự thay quá trình “chạy đua” hay tự daođộng giá trị Q từ 0 đến 1 và ngƣợc lại với chu kỳ bằng độ trễ chuyển mạchcủa flip-flop.

- JK-flip-flop

Bảng 3

Theo bảng chân lý JK-flip flip hoạt động khá linh hoạt thực hiện chứcnăng giống như D-flip flop hoặc RS flip-flop, trạng thái khí J=0, K=1 làReset, J=1, K=0 là Set Tuy không có đầu vào dữ liệu D nhưng để JK flip-floplàm việc như một D-flip flip thì tín hiệu D nối với J còn K cho nhận giá trị đốicủa J

Trang 15

- T- flip-flop

Bảng 4

Khi T bằng 1 thì giá trị Qnext bằng đảo của giá trị trước Qprev khi T = 0thì giá trị đầu ra không thay đổi

III LED 7 THANH

Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người

sử dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led

7 đoạn" Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp,

chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độphòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩmđược kiểm tra sau một công đoạn nào đó

Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theohình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới,bên phải của led 7 đoạn

8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) đượcnối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạchđiện 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa

ra ngoài để kết nối với mạch điện Nếu led 7 đoạn có Anode(cực +) chung, đầuchung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng tháisáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0.Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này được nối xuốngGround (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt củacác led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1

Trang 16

Anode(cực dương+) chung Cathode(cực -) chung

Hình 7 Hình ảnh Anode và Cathode chung

Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảmbảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led Nếu kết nốivới nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệuđiều khiển

Sơ đồ vị trí các led được trình bày như hình dưới:

Các điện trở 330Ω là các điện trở bên ngoàiđược kết nối để giới hạn dòng điện qua led nếu led 7đoạn được nối với nguồn 5V

Chân nhận tín hiệu a điều khiển led a sáng tắt,ngõ vào b để điều khiển led b Tương tự với các chân

và các led còn lại

Ngõ nhận tín hiệu điều khiển của led 7 đoạn có

8 đường, vì vậy có thể dùng 1 Port nào đó của Vi điềukhiển để điều khiển led 7 đoạn Như vậy led 7 đoạnnhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt củatừng led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường đượcgọi là "mã hiển thị led 7 đoạn" Có hai kiểu mã hiển thị led 7 đoạn: mã dành choled 7 đoạn có Anode(cực +) chung và mã dành cho led 7 đoạn có Cathode(cực -)chung Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b và c sáng, nếu

sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và c điện áp là0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn ngược lại, tức làphải đặt vào chân b và c điện áp là 5V(mức 1)

Bảng mã hiển thị led 7 đoạn:

 Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuậntiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân

a, Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h

Trang 17

 Dữ liệu xuất có dạng nhị phân như sau : hgfedcba

Bảng 5 Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung

Trang 18

CHƯƠNG III THIẾT KẾ BỘ ĐẾM CHẴN TỪ 0-98 HOẶC ĐẾM LẺ TỪ 1-99 HIỂN THỊ LED 7 THANH CÓ TÍN HIỆU RESET, START, STOP, SELEC

I PHƯƠNG ÁN THIẾT KẾ

1 Các phương án thiết kế

Có hai phương pháp cơ bản được sử dụng để mô tả vi mạch số là mô tảbằng sơ đồ logic (schematic) và mô tả bằng ngôn ngữ mô tả phần cứngHDL (Hardware Description Language)

Mô tả bằng sơ đồ: vi mạch được mô tả trực quan bằng cách ghép nối cácphần tử logic khác nhau một cách trực tiếp giống nhau ví dụ ở hình vẽ dướiđây

Thông thường các phần tử không đơn thuần là các đối tượng đồ họa màcòn có các đặc tính vật lý gồm chức năng logic, thông số tải vào ra, thờigian trễ… Những thông tin này được lưu trữ trong thư viện logic thiết kế Mạch

vẽ ra có thể được mô phỏng để kiểm tra chức năng và phát hiện và sửa lỗi mộtcách trực tiếp

Ngày đăng: 11/11/2015, 14:15

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

TÀI LIỆU LIÊN QUAN

w