1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 36 trang )


1. Các đặc điểm chính

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



của ngôn ngữ VHDL



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

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.

Trang | 4



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, khi

thiết kế trong VHDL tên của file lưu trữ phải trùng với tên theo sau từ khóa

entity

Ví dụ:

Entity dec2to4 is

Port ( 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 ghi

tớ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ông

thể đọ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õ ra

củ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ụng

kiể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ả 1

vector những tín hiệu có cùng loại.

a. Architecture

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ần

thân kiến trúc, người thiết kế có thể viết theo nhiều kiến trúc khác nhau trong

một thực thể, nhưng chỉ một trong số đó có khả năng xuất hiện trong mã VHDL

của người thiết kế. Cấu trúc của một chương trình có dạng như sau:

Trang | 5



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ểu

trong 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ùng

vớ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ành

mộ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ện

củ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ủa

mì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ành

phầ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ên

thà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 and2

Port(a,b: in bit;

Z: out bit);

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

Entity and_generic is

Port( n: out bit;

L,m: in bit);

End and_generic;

Entity and_hs is

Port( n: out bit;

L,m: in bit);

Trang | 6



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_hs cho

thành phần and2 và trong trường hợp khác là thực thể là and_generic. Lợi thế 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ới cá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ặp

như 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ên

trong một package cho phép data được tham khảo bởi một thực thể khác vì vậy

data 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ủa

package, 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 khai

báo này có thể được dùng chung cho nhiều thiết kế. Khai báo khối tạo ra giao

diệ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ại

bấ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ước

trong khối. Cú pháp khai báo được xác định là:

Package package-name is

Cá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

- alias delaration

- attribute delaration, a user_ define attribute

- Attribute specification

- use clause

Tất cả các đối tượng được khai báo trong khối thì có thể được truy xuất

bở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ải

Trang | 7



tuâ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ới

nhữ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ôi

trườ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ới

cá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ác

ngô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ương

trì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...

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ành

phần thiết kế mức thấp.



Trang | 8



Quartus II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảo

file 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 . Giao diện Quatus II



Trang | 9



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 ) được

lắ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ín

hiệ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 . 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

và hàm logic.

Ví dụ: Một cổng NOT loại CMOS (hình 1.4) tương ứng hàm NOT

hai biến Q = not A.



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



Trên sơ đồ dễ nhận thấy rằng, chỉ khi A có mức tích cực cao thì

transitor trên đóng còn transitor dưới mở, Q có mức tích cực thấp, khi A có mức

tích cực thấp thì transitor trên mở và dưới đóng nên Q có mức tích cực cao, như

vậy mạch điện với sơ đồ trên thực hiện vai trò của cổng NOT.

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 | 10



Hình . 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 đổi

nà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ổ xung

thêm các tham số thời gian thực của các phần tử này.



Bảng



D-Latch là phần tử nhớ làm việc theo mức xung, cụ thể khi tín hiệu

Clock 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ột

cử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.

Trang | 11



Xem Thêm
Tải bản đầy đủ (.docx) (36 trang)

×