Tải bản đầy đủ (.pdf) (17 trang)

Thiết kế hệ thống số

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 (470.1 KB, 17 trang )

Thiết kế hệ thống số

MỤC LỤC
-o0o-

MỤC LỤC................................................................................................................................1
LỜI NÓI ĐẦU .........................................................................................................................2
PHẦN 1: TÌM HIỂU VỀ ASIC ............................................................................................3
I. Giới thiệu về công nghệ ASIC và lịch sử phát triển :................................................3
II.Các loại ASIC : ...............................................................................................................5
III.Luồng thiết kế ASIC ....................................................................................................5
PHẦN 2: TÌM HIỂU VỀ FPGA ...........................................................................................6
I.Giới thiệu về FPGA: ........................................................................................................6
II. Ý nghĩa và vai trò của FPGA ......................................................................................8
III. Lập trình cho FPGA ..................................................................................................8
IV. Các công cụ lập trình ................................................................................................10
PHẦN 3: MÃ NGUỒN VHDL ...........................................................................................11
************************Solution 1***************************** .............11
************************Solution 2***************************** .............14
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN...............................................................17

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

1


Thiết kế hệ thống số

LỜI NÓI ĐẦU

Các mạch tích hợp hiện đại ngày càng thực hiện được nhiều chức năng do đó


mà vấn đề thiết kế mạch ngày càng trở nên phức tạp. Trước đây khi thiết kế một
hệ thống số người ta thường sử dụng những phương pháp truyền thống như dung
phương pháp tối thiểu hóa hàm Boolean hay sử dụng sơ đồ các phần tử logic.
Nhược điểm lớn nhất của các phương pháp này là chúng chỉ mô tả được hệ thống
dưới dạng mạng nối các phần tử với nhau. Người thiết kế cần phải đi qua hai bước
thực hiện hoàn toàn thủ công : đó là chuyển từ các yêu cầu về chức năng của hệ
thống sang biểu diễn theo dạng hàm Boolean, sau các bước tối thiểu hóa hàm này
ta lại phải chuyển từ sơ đồ hàm Boolean sang sơ đồ mạch hệ thống. Cũng tương tự
khi phân tích một hệ thống người phân tích cần phải phân tích sơ đồ mạch của hệ
thống, rồi chuyển nó thành các hàm Boolean, sau đó mới lập lại các chức năng
hoạt động của hệ thống. Tất cả các bước nói trên hoàn toàn phải thực hiện thủ
công không có bất kỳ sự chợ giúp nào của máy tính. Người thiết kế chỉ có thể sử
dụng máy tính làm công cụ trong việc vẽ sơ đồ mạch của hệ thống và chuyển từ sơ
đồ mạch sang công cụ tổng hợp mạch vật lý dung công cụ Synthesis. Một nhược
điểm nữa của phương pháp thiết kế truyền thống là sự giới hạn độ phức tạp của hệ
thống được thiết kế, chỉ có thể biểu diến được vài trăm hàm.
Ngày nay nền công nghiệp bán dẫn đã phát triển và trường thành nhanh chóng
đã tạo ra các IC có độ tích hợp cao. Và để tối ưu hóa khả năng ứng dụng của IC,
nhà sản suất đã cho ra một loại linh kiện đặc biệt mà chức năng của nó sẽ được
người thiết kế quy định chứ không phải do nhà sản xuất nữa. Đó là các thiết bị
logic lập trình được. Đi đến sự ra đời của ngôn ngữ mô tả phần cứng, nổi bật lên
với các ưu điểm hơn hẳn và sẽ dần thay thế các phương pháp thiết kế truyền thống,
cho phép chúng ta thiết kế một hệ thống lớn, các mạch tích hợp có tốc độ cao. Để
hiểu rõ hơn về vấn đề này chúng ta đi vào tìm hiểu ngôn ngữ mô tả phần cứng
VHDL và công nghệ ứng dụng thiết kế mạch sử dụng VHDL.
**********************************

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

2



Thiết kế hệ thống số
PHẦN 1: TÌM HIỂU VỀ ASIC
I. Giới thiệu về công nghệ ASIC và lịch sử phát triển :
ASIC viết tắt của Application-Specific Integrated Circuit trong tiếng Anh, là
một thuật ngữ chỉ một vi mạch tích hợp được sản xuất cho một ứng dụng đặc
trưng và nhìn chung chúng có một kích thước tương đối nhỏ.
ASIC là một vi mạch IC được thiết kế dành cho một ứng dụng cụ thể. ASIC
ngày nay được ứng dụng hầu như khắp mọi nơi, ví dụ như vi xử lý của điện thoại
di động, hay chip xử lý trong các máy móc tự động, các phương tiện truyền thông,
vận tải, tàu vũ trụ, các hệ thống xử lý, các dây chuyền công nghiệp và ngay cả
trong các thiết bị cầm tay PDA.
Công nghệ vi điện tử ngày nay đang chứng kiến một sự thay đổi to lớn: từ
những vi mạch được thiết kế bởi các chuyên gia vi mạch, sản xuất với số lượng
lớn; chuyển sang các mạch chuyên dụng được thiết kế bởi các kỹ sư hệ thống tại
các cơ sở ứng dụng, tại đó không nhất thiết phải đầu tư cơ sở vật chất để làm công
nghệ bán dẫn và có thể sản xuất với số lượng nhỏ. Nhờ công nghệ ASIC
(Application-specific Integrated Circuit) nên các mạch tổ hợp lớn trong nhiều
trường hợp có thể được “chế tạo” ngay tại các cơ sở ứng dụng. Có được sự thay
đổi đó là nhờ việc sử dụng các hệ thống tự động thiết kế CAD (Computer-aided
Design).
Hiện nay, mạch vi điện tử chuyên dụng đang có nhu cầu thị trường rất cao,
chiếm khoảng 42% thị trường IC thế giới, và trong những năm tới sẽ chiếm
khoảng 65%
ASIC là một vi mạch được thiết kế dành cho một ứng dụng đặc biệt (đối lập
với các mạch tích hợp điều khiển các hàm như RAM trong máy tính). ASIC được
xây dựng bằng việc kết nối các khối mạch đã được xây dựng theo các phương
pháp mới. Do các khối mạch sử dụng đã có sẵn nên việc sản xuất một ASIC mới
dễ dàng hơn nhiều so với việc thiết kế một vi mạch từ những phác thảo ban đầu.

Sau đây là sơ lược quá trình phát triển của mạch tích hợp (IC).
Hình 1(a) cho thấy khuôn dạng một IC bao gồm một mạng lưới chân (viết tắt
PGA : pin-grid array) nằm ở mặt trên của IC và cắm vào trong board
mạch in, thường được gọi là gói chíp. Hình 1(b), chip silicon (gọi là silicon die)
được gắn vào lỗ hổng dưới nắp được bịt kín.

Hình 1 (a) Sơ đồ chân của IC.
(b) chip silicon ở dưới nắp

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

3


Thiết kế hệ thống số
Kích thước vật lý của một silicon die thay đổi từ một milimét đến vài
milimét, nhưng thông thường kích cỡ của một IC được đo bằng số cổng logic
(cổng NAND hai ngõ vào) hay số lượng transistor chứa trong IC. Ví dụ, một IC có
100k cổng tương đương với 100.000 cổng NAND hai ngõ vào.
Công nghệ bán dẫn đã ra đời vào những năm 1970 và tiếp tục phát triển cho
đến nay. Họ IC đầu tiên gồm những linh kiện có mật độ tích hợp nhỏ (SSI) chứa
từ 1 đến 10 cổng logic như cổng NAND, cổng NOR… hơn nữa chỉ vài chục
transistor. Tiếp đến là thời kỳ của những mạch tích hợp có mật độ trung bình
(MSI) và đã mang theo những chức năng ưu việt hơn so với SSI đó là mật độ tích
hợp lớn hơn đồng thời các hàm logic chức năng nhiều hơn. Chẳng hạn như, số
lượng cổng logic, các bộ giải mã, các thanh ghi, bộ đếm được tăng thêm. Vào cuối
những năm 1970, công nghệ mạch tích hợp tiếp tục phát triển đến mức các mạch
tích hợp mật độ cao (LSI) ra đời. Lúc này, các bộ vi xử lí đầu tiên trong các chíp
đơn ra đời. Với sự ra đời của LSI đã tạo nên một bước tiến mới trong công nghệ
bán dẫn, đã thu hút được mối quan tâm của các kỹ sư, các hãng cạnh tranh lúc bấy

giờ. Các hãng như Intel và Motorola bắt đầu sản xuất các chíp vi xử lí đơn và
những chíp nhớ đơn RAM và ROM. Các chíp hỗ trợ khác cũng bắt đầu xuất hiện
như: cổng song song, giao diện nối tiếp (UART) và bộ điều khiển ngắt. Vì vậy,
nhiều họ chíp LSI mới được sản xuất và sử dụng cho mục đích thiết kế máy vi
tính. Ngày nay, các mạch tích hợp có mật độ tích hợp rất cao (VLSI) ra đời đưa ra
bộ xử lý 64 bit có bộ nhớ cache, bộ xử lý toán học có dấu chấm động và được tích
hợp trên một triệu transistor. Khi công nghệ CMOS phát triển, các transistor được
sản xuất với diện tích nhỏ hơn, vì thế các transistor được tích hợp ngày càng nhỏ
bên trong IC.
Trong những năm 1980, với công nghệ VLSI các kỹ sư đã bắt đầu khai thác
những ưu điểm thiết kế một IC theo nhu cầu của mình hoặc thiết kế các hệ thống,
các ứng dụng đặt biệt một cách tùy tiện hơn so với các IC chuẩn. Sau đó, thiết kế
hệ thống vi điện tử trở thành chủ đề cần quan tâm. Đến cuối những năm 1980,
những ngôn ngữ mô tả phần cứng như VHDL và Verilog được ra đời đã đi sâu vào
phong cách thiết kế. Các bộ mô phỏng tốc độ cao và các máy mô phỏng đã cho
phép các mẫu thiết kế có hiệu lực nhanh chóng. Bộ kiểm tra và phân tích tự động
đã loại bỏ những lỗi do con người gây ra trong quá trình xử lý. Cuối cùng, những
công cụ tổng hợp đã tự động tiến hành phiên dịch hoạt động của mô hình HDL
thành một mô hình cấu trúc logic.
Một trong những hội nghị đầu tiên dành cho giai đoạn này nổi lên một cách
nhanh chóng của công nghệ IC đó là hiệp hội CICC (IEEE Custom Intergrated
Circuits Conference), và hôi nghị này được tổ chức hàng năm nhằm giúp cho sự
phát triển của các hãng sản xuất IC tùy biến. Các loại IC tùy biến khác nhau bắt
đầu được đưa ra có những ứng dụng khác nhau. Sự ra đời của các loại IC mới này
đã mở ra một thời kỳ mới đó là những IC ứng dụng chuyên biệt hay ASIC. Ngày
nay, đã có hiệp hội ASIC quốc tế IEEE (IEEE International ASIC conference).

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

4



Thiết kế hệ thống số
II.Các loại ASIC :
 ASIC đặc chế hoàn toàn (Full-custom ASIC)
 ASIC dựa trên các tế bào chuẩn (Standard-Cell-Based ASIC)
 ASIC dựa trên mảng cổng lôgíc (Gate-Array-Based ASIC)
- Mảng cổng được chia kênh (channeled gate-array).
- Mảng cổng không chia kênh (channeless gate-array).
- Mảng cổng có cấu trúc (structured gate-array).
 Các vi mạch lập trình được (Programmable Logic Devices hay PLD)
 Mảng cổng lôgíc có thể lập trình được theo trường/miền (FieldProgrammable Gate Array)
III.Luồng thiết kế ASIC

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

5


Thiết kế hệ thống số
1. Nhập thiết kế (design entry):
Sử dụng ngôn ngữ mô tả phần cứng HDL (VHDL hay Verilog)
(VHDL bởi Bộ Quốc phòng trong năm 1980 và tiêu chuẩn
hóa bởi IEEE vào năm 1993 - Verilog được tạo ra bởi Cadence trong năm
1989 và tiêu chuẩn hóa bởi IEEE năm 1995)
2. Tổng hợp logic (logic synthesis):
Dùng HDL và công cụ tổng hợp logic để xây dựng netlist – là sự mô tả các
tế bào (cell), các khối (block) và kết nối (interconnect) giữa chúng
3. Phân chia hệ thống (system partitioning):
Chia hệ thống lớn thành các phần thích hợp

4. Mô phỏng tiền layout (prelayout simulation):
Kiểm tra tính đúng đắn của thiết kế (tiền layout = sơ đồ mạch logic – chỉ
gần đúng với thực tế)
5. Sắp xếp các khối trên chip (floorplanning):
Sắp xếp các khối của netlist trên chip. Nên xem xét cả khía cạnh vật lý và
logic khi thiết kế bước này
6. Bố trí cell (placement):
Định vị cell bên trong khối
7. Định đường dẫn hay định tuyến (routing): kết nối giữa các cell và các
khối
8. Kiểm tra tính hợp l‎ý của bước 7 (extraction): tính toán trở kháng và dung
kháng lớp interconnect
9. Mô phỏng hậu layout (postlayout simulation):
Kiểm tra khả năng làm việc ổn định của toàn bộ thiết kế trong trường hợp
có thêm tải từ lớp interconnect (hậu layout = sơ đồ mạch thực tế)
Các bước thiết kế 1 - 5: logic (logical design).
Các bước thiết kế 5 – 9 : vật lý (physical design).
Kết thúc bước kiểm tra, nếu có lỗi xuất hiện ta phải quay lại các bước trên để
thực hiện chỉnh sửa đến khi việc kiểm tra đảm bảo hoàn tất mà không còn lỗi. Sau
khi hoàn tất việc biên dịch mà không còn lỗi nào nữa, file biên dịch sẽ được tải
xuống thiết bị (download device).
PHẦN 2: TÌM HIỂU VỀ FPGA
I.Giới thiệu về FPGA:
PLD sản xuất phức tạp gọi là field-programmable gate array ( FPGA ). Là vi
mạch dùng cấu trúc mảng phần tử logic có thể lập trình được dạng trường.
(Chữ field ở đây muốn chỉ đến khả năng tái lập trình “bên ngoài” của người sử
dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn)
Có 1 sự khác biệt giữa FPGA và PLD. Đó là FPGA lớn và phức tạp hơn PLD.
FPGA là thành viên mới trong họ ASIC và đã phát triển rất nhanh chóng, thay thế
TTL trong các hệ thống vi điện tử.

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

6


Thiết kế hệ thống số
Các đặc điểm cần thiết của FPGA
- Không có lớp mặt nạ nào được tùy biến
- Có một phương pháp lập trình logic cell cơ bản và interconnect.
- Lõi là 1 mảng các logic cell cơ bản có thể lập trình mà có thể tăng cường
kết nối như các chuỗi tuần tự ( flip-flop)
- Một ma trận interconnect có thể lập trình bao quanh logic cell cơ bản
- Cell I/O có thể lập trình bao quanh lõi
- Thiết kế chỉ mất vài giờ
Tất cả FPGA chứa cấu trúc là các logic cell có thể lập trình được bao quanh bởi
interconnect có thể lập trình. Số lượng, kích thước, chủng loại chính xác của logic
cell cơ bản có thể lập trình thay đổi rất lớn.

A field-programmable gate array (FPGA) die.
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; và khác
biệt quan trọng nhất là 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ư 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).

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

7


Thiết kế hệ thống số
II. Ý nghĩa và vai trò của FPGA
FPGA có ý nghĩa và vai trò quan trọng trong thực tiễn. Ứng dụng cho nhiều
ngành nghề, đặc biệt là khoa học.
Với các ưu điểm về khả năng tái cấu hình, tốc độ hoạt động, thời gian sản xuất,
giá thành giảm, FPGA thường được dung trong các lĩnh vực như:
Thiết kế các lõi IP cho các lĩnh vực chuyên dụng:
- Mã hóa (Cryptography)
- Viễn thông (Communication)
- Công nghiệp phát thanh truyền hình số (Broadcast Industry)
- Xử lý ảnh, thiết kế các bộ codec
- SoC thiết kế các Core CPU, bus ...
Thiết kế các sản phẩm công nghệ cao và số lượng ít, cần độ đặc chế cao.
Các máy đo, phát và thu sóng viễn thông. FPGA đóng vai trò glue-logic, kết nối
các con chip chuyên dụng lại và chạy một số chức năng hỗ trợ con CPU nhúng để
hệ thống nhanh hơn, hiệu quả hơn.

III. Lập trình cho FPGA

Nhập vào thiết
kế
(Schematic hoặc
HDL)

Mô phỏng chức
năng
(Functional
Simulation)

Tổng hợp
(Synthesis)
Mô phỏng
thời gian
(Timing
Simulation)
Liệt kê lưới
(netlist)  Xử lý
Implementation
Device
Programming
Loading

Sơ đồ lập trình cho FPGA
Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

8



Thiết kế hệ thống số
Để sử dụng thiết bị logic lập trình ta phải kết hợp phần cứng và phần mềm với
nhau. Ta coi thiết bị lập trình được là thiết bị đích. Các thiết bị cần thiết để lập
trình bao gồm máy tính, phần mềm lập trình, thiết bị logic ( ở đây là FPGA) và
thiết bị kết nối máy tính với thiết bị lập trình ( cáp nối và mạch nạp)
1.Cách thiết kế:
Trước tiên ta thiết kế trên máy tính, ta có thể thiết kế bằng sơ đồ Schematic hoặc
ngôn ngữ mô tả phần cứng HDL (VHDL hoặc Verilog).
2.Mô phỏng chức năng:
Để đảm bảo thiết kế hoạt động theo yêu cầu ta phải thực hiện bước mô tả dạng
sóng bằng cách cung cấp dạng sóng đầu vào và quan sát dạng sóng đầu ra.
3.Tổng hợp
Tổng hợp để đảm bảo thiết kế được tối ưu theo các thành phần từ đó có thể giảm
được số lượng cổng, loại trừ các thành phần logic thừa, thay thế các thành phần
logic khác có cùng chức năng nhưng hiệu quả hơn.
4.Liệt kê lưới (Neslist).
Mô tả các thành phần và cách kết nối với nhau. Liệt kê lưới chứa các thành phần
và các phần tử được sử dụng. Các điểm kết nối là các port và các pin chân).
5. Thi hành
Sau khi thiết kế đã được tổng hợp thì trình biên dịch thi hành thiết kế - Về cơ
bản công việc này là xắp xếp thiết kế để nó có thể tương thích với thiết bị lập trình
đã chọn bằng cách dựa vào cấu trúc và cấu hình chân.
Quá trình xử lý này gọi là làm cho tương thích (fitting). Để kết thúc công đoạn
thi hành của dòng thiết kế thì phần mềm phải biết thiết bị rõ rang và phải có đầy
đủ thông tin chi tiết về các chân. Dữ liệu đầy đủ cho tất cả các thiết bị thường
được lưu trong thư viện của bộ nhớ và người thiết kế chỉ cần lựa chọn đúng thiết
bị lập trình.
6.Mô phỏng thời gian
Thực hiện trước khi nạp vào thiết bị, Mô phỏng theo thời gian để kiểm tra mạch

hoạt động tại tần số thiết kế hoặc không có thời gian trễ hoăc các vấn đề thời gian
khác làm ảnh hưởng đến hoạt động của mạch.
Khi mô phỏng chức năng thì các thông số chỉ định về thiết bị là không cần thiết,
nhưng khi mô phỏng về thời gian thì cần phải lựa chọn thiết bị đích. Nếu không bị
lỗi ta có thể thực hiện bước tiếp theo, nếu gặp sự cố ví dụ như gặp thời gian trễ thì
ta phải lặp lại các bước thiết kế.
7.Nạp chương trình cho thiết bị
Sau khi kiểm tra mô phỏng chức năng và mô phỏng theo thời gian và đã hoạt
động đúng thì ta có thể tiến hành Download. 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
Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

9


Thiết kế hệ thống số
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.
IV. Các công cụ lập trình
Các thiết bị cần thiết để lập trình bao gồm máy tính, phần mềm lập trình, thiết bị
logic ( ở đây là FPGA) và thiết bị kết nối máy tính với thiết bị lập trình ( cáp nối
và mạch nạp)
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, hay có thể sơ đồ mạch (Schematic) hoặc

có thể kết hợp Schematic với HDL.
Phần lớn các sản phẩm FPGA trên thị trường hiện nay đều dựa trên công
nghệ SRAM với 2 hãng sản xuất lớn nhất là Xilinx và Altera. Dòng FPGA cao cấp
nhất của Xilinx là Virtex ( Virtex 5), Spartan, SpartanII, SpartanIII còn với Altera
là Stratix 3, FLEX,Cyclone .Ngoài ra còn có các hãng khác sản xuất FPGA nhưng
với mục đích chuyên dụng (Atmel, Actel, Lattice,..)
Môi trường thiết kế ta có thể sử dụng Altium Designer, hiện nay phiên bản mới
Altium Designer Summer 9 có thể lập trình cho FPGA của tất cả các hãng cung
cấp, là phần mềm trung lập, thiết kế dễ dàng và trực quan, hỗ trợ nhiều tính năng
thuận tiện.
Ngoài ra còn sử dụng các phần mềm hỗ trợ khác như:
- Xilinx ISE lập trình cho FPGA của Xilinx.
- Altera quatus lập trình cho FPGA của Altera.
- Actel libero lập trình cho FPGA của Actel.
- Labview lập trình cho FPGA của NI.

***************************************************************

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

10


Thiết kế hệ thống số

PHẦN 3: MÃ NGUỒN VHDL
Thiết kế bộ đếm 000-999 đếm lên xuống đươc điều khiển bằng tín hiệu vào SEL
(SEL=0 thì đếm lên,SEL=1 thì đếm xuống ) có giải mã hiển thị 3 led 7 thanh.
***************************Solution 1******************************
library IEEE;

use IEEE.STD_LOGIC_1164.all;
entity nomal999 is
port(
clk : in STD_LOGIC;
rst : in STD_LOGIC;
sel : in STD_LOGIC;
Led_donvi : out STD_LOGIC_VECTOR(6 downto 0);
Led_chuc : out STD_LOGIC_VECTOR(6 downto 0);
Led_tram : out STD_LOGIC_VECTOR(6 downto 0)
);
end nomal999;
architecture behaviral of nomal999 is
begin
process(clk,rst)
variable donvi:integer range -1 to 10;
variable chuc:integer range -1 to 10;
variable tram:integer range -1 to 10;
begin
if(rst='1')then
donvi:=0;
chuc:=0;
tram:=0;
elsif(clk'EVENT and clk='1')then
if(sel='0')then
donvi:=donvi+1;
if(donvi=10)then
donvi:=0;
chuc:=chuc+1;
if(chuc=10)then
chuc:=0;

tram:=tram+1;
if(tram=10)then
tram:=0;
Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

11


Thiết kế hệ thống số
end if;
end if;
end if;
else
donvi:=donvi-1;
if(donvi=-1)then
donvi:=9;
chuc:=chuc-1;
if(chuc=-1)then
chuc:=9;
tram:=tram-1;
if(tram=-1)then
tram:=9;
end if;
end if;
end if;
end if;
end if;
----Hien thi--case donvi is
when 0 =>led_donvi<="1000000" ;
when 1 =>led_donvi<="1111001" ;

when 2 =>led_donvi<="0100100" ;
when 3 =>led_donvi<="0110000" ;
when 4 =>led_donvi<="0011001" ;
when 5 =>led_donvi<="0010010" ; --5
when 6 =>led_donvi<="0000010" ;
when 7 =>led_donvi<="1111000" ;
when 8 =>led_donvi<="0000000" ;
when 9 =>led_donvi<="0010000" ;
when others =>null;
end case;
case chuc is
when 0 =>led_chuc<="1000000" ;
when 1 =>led_chuc<="1111001" ;
when 2 =>led_chuc<="0100100" ;
when 3 =>led_chuc<="0110000" ;
when 4 =>led_chuc<="0011001" ;
when 5 =>led_chuc<="0010010" ; --5
when 6 =>led_chuc<="0000010" ;
when 7 =>led_chuc<="1111000" ;
when 8 =>led_chuc<="0000000" ;
when 9 =>led_chuc<="0010000" ;
Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

--0
--1
--2
--3
--4
--6
--7

--8
--9

--0
--1
--2
--3
--4
--6
--7
--8
--9
12


Thiết kế hệ thống số
when others =>null;
end case;
case tram is
when 0 =>led_tram<="1000000" ; --0
when 1 =>led_tram<="1111001" ; --1
when 2 =>led_tram<="0100100" ; --2
when 3 =>led_tram<="0110000" ; --3
when 4 =>led_tram<="0011001" ; --4
when 5 =>led_tram<="0010010" ; --5
when 6 =>led_tram<="0000010" ; --6
when 7 =>led_tram<="1111000" ; --7
when 8 =>led_tram<="0000000" ; --8
when 9 =>led_tram<="0010000" ; --9
when others =>null;

end case;
end process;
end behaviral;
Mô phỏng:
- Khi Sel=1 đếm ngược

-Khi Sel =0 chuyển từ đếm ngược sang đếm thuận

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

13


Thiết kế hệ thống số

************************Solution 2*****************************
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity function_999 is
port(
clk : in STD_LOGIC;
rst : in STD_LOGIC;
sel : in STD_LOGIC;
led_donvi : out STD_LOGIC_VECTOR(6 downto 0);
led_chuc : out STD_LOGIC_VECTOR(6 downto 0);
led_tram : out STD_LOGIC_VECTOR(6 downto 0)
);
end function_999;
architecture behaviral of function_999 is
function giai_ma( x:integer range 0 to 9) return std_logic_vector is

variable led: std_logic_vector(6 downto 0);
begin
case x is
when 0 =>led:="1000000" ;
--0
when 1 =>led:="1111001" ;
--1
when 2 =>led:="0100100" ;
--2
when 3 =>led:="0110000" ;
--3
when 4 =>led:="0011001" ;
--4
when 5 =>led:="0010010" ; --5
when 6 =>led:="0000010" ;
--6
when 7 =>led:="1111000" ;
--7
when 8 =>led:="0000000" ;
--8
when 9 =>led:="0010000" ;
--9
when others =>null;
end case;
return led;
end giai_ma;
begin
process(clk,rst)
variable donvi: integer range -1 to 10;
variable chuc: integer range -1 to 10;

variable tram: integer range -1 to 10;
begin
if(rst='1')then
Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

14


Thiết kế hệ thống số
donvi:=0;
chuc:=0;
tram:=0;
elsif(clk'EVENT and clk='1')then
if(sel='0')then
donvi:=donvi+1;
if(donvi=10)then
donvi:=0;
chuc:=chuc+1;
if(chuc=10)then
chuc:=0;
tram:=tram+1;
if(tram=10)then
tram:=0;
end if;
end if;
end if;
else
donvi:=donvi-1;
if(donvi=-1)then
donvi:=9;

chuc:=chuc-1;
if(chuc=-1)then
chuc:=9;
tram:=tram-1;
if(tram=-1)then
tram:=9;
end if;
end if;
end if;
end if;
end if;
led_donvi<=giai_ma(donvi);
led_chuc<=giai_ma(chuc);
led_tram<=giai_ma(tram);
end process;
end behaviral;

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

15


Thiết kế hệ thống số

Mô phỏng:
-Khi Sel=1 đếm ngược

-Khi Sel =0 chuyển từ đếm ngược sang đếm thuận

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội


16


Thiết kế hệ thống số

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Giáo viên hướng dẫn: Tống Văn Luyên
Nhóm SV thực hiện:
1. Vũ Quốc Toản
2. Nguyễn Hữu Tình
3. Nguyễn Tiến Tùng
4. Hoàng Quang Uy
5. Quách Tiến Học
6. Hoàng Văn Phúc
Lớp : Điện Tử 2 – Khóa 3
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

Điện tử 2 – Khóa 3 Đại học Công Nghiệp Hà Nội

17



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×