Sử dụng VHDL, Thiết kế và mô phòng bộ đếm sản phẩm có 2 đầu vào ( chỉ đếm tiến) (mỗi đầu vào là 1 sensor, hiển thị trên led 2 đôi 7 thanh). Đếm tối da 99 rồi reset về 0. Yêu cầu: Trình bày cụ thể, chi tiết các bước thiết kế, các phương án thiết kế có thể. Giải thích lý do lựa chọn phương án để thực hiện mạch. Vẽ sơ đồ FSM, code VHDL, giản đồ wave form. Sử dụng phần mềm Altera Quatus mô phỏng (funtion và timming). Synthesize ra sơ đồ mạch. Tính toán tần số tối đa mạch thiết kế. Báo cáo chuyên đề được trình bày, đóng quyển trển khổ A4 ( 25 – 50 trang). Báo cáo nội dung thực hiện bằng Slide tối đa 10 phút. Trả lời các câu hỏi của giáo viên.
Trang 1BÁO CÁO THIẾT KẾ BỘ ĐẾM 00 ĐẾN 99 BẰNG NGÔN NGỮ
VHDL
Đề bài: Sử dụng VHDL, Thiết kế và mô phòng bộ đếm sản phẩm có 2 đầu vào ( chỉ
đếm tiến) (mỗi đầu vào là 1 sensor, hiển thị trên led 2 đôi 7 thanh) Đếm tối da 99 rồireset về 0
Yêu cầu:
- Trình bày cụ thể, chi tiết các bước thiết kế, các phương án thiết kế có thể Giải thích
lý do lựa chọn phương án để thực hiện mạch
- Vẽ sơ đồ FSM, code VHDL, giản đồ wave form
- Sử dụng phần mềm Altera Quatus mô phỏng (funtion và timming)
- Synthesize ra sơ đồ mạch
- Tính toán tần số tối đa mạch thiết kế
- Báo cáo chuyên đề được trình bày, đóng quyển trển khổ A4 ( 25 – 50 trang)
- Báo cáo nội dung thực hiện bằng Slide tối đa 10 phút
- Trả lời các câu hỏi của giáo viên
Trang 2MỤC LỤC
Tran
MỤC LỤC 2
MỤC LỤC HÌNH ẢNH 4
LỜI NÓI ĐẦU 5
Chương 1 CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu phần mềm Quartus 6
1.2 Các phương pháp thiết kế vi mạch số 7
1.2.1 Mô tả bằng sơ đồ 7
1.2.2 Mô tả bằng HDL 8
1.3 Giới thiệu về phương pháp máy trạng thái 10
1.3.1 Giới thiệu 10
1.3.2 Thiết kế theo kiểu 1 (thiết kế theo mô hình moore) 12
1.3.3 Thiết kế theo kiểu 2 12
CHƯƠNG 2 THIẾT KẾ BỘ ĐẾM 00 ĐẾN 99 RESET VỀ 0 2.1 Vẽ sơ đồ FSM 13
2.2 Phương án thiết kế 14
2.3 Bộ giải mã BCD-to-7 segment 15
2.4 Code VHDL 16
Chương 3 THIẾT KẾ VÀ MÔ PHỎNG BỘ ĐẾM 00 ĐẾN 99 BẰNG NGÔN NGỮ VHDL TRÊN PHẦN MỀM QUARTUS PRIME 16.0 LITE EDITION 3.1 Tạo project cho mạch 19
3.2 Tạo file chương trình VHDL 21
3.3 Mô phỏng Function và Timing 23
3.3.1 Giản đồ Waveform 23
3.3.2 Mô phỏng Function 24
3.3.3 Mô phỏng Timing 25
3.4 Synthesize ra sơ đồ mạch (Mức thanh ghi) bằng phần mềm Quatus 26
3.5 Sơ đồ FSM 28
3.5 Tính toán tần số tối đa mạch thiết kế 28
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 31
Trang 4MỤC LỤC HÌNH ẢNH
Trang
Hình 1 Mô tả mạch số bằng sơ đồ 6
Hình 2 Sơ đồ máy trạng thái 9
Hình 3a Sơ đồ mạch kiểu 1 11
Hình 3b Sơ đồ mạch kiểu 2 11
Hình 4 Sơ đồ FSM biểu thị ra BCD-to-7 segment 12
Hình 5 Bộ đếm hai chữ số thập phân 0 → 99 → 0, đầu ra là 2 LED 7 thanh 13
Hình 6 Cửa sổ khởi tạo Project mới 18
Hình 7 Cửa sổ chọn họ và tên linh kiện 18
Hình 8 Cửa sổ chọn ngôn ngữ lập trình 19
Hình 9 Cửa sổ hoàn thành việc lập New Project Winzard 19
Hình 10 Cửa sổ khởi tạo File VHDL 20
Hình 11 Cửa sổ nạp code File VHDL 20
Hình 12 Cửa sổ biên dịch chương trình 21
Hình 13 Cửa sổ biên dịch thành công 21
Hình 14 Cửa sổ tạo File Waveform 22
Hình 15 Cửa sổ University Program VWF 22
Hình 16 Cửa sổ xung Clock 23
Hình 17 Cửa sổ chọn Run Function Simulator 23
Hình 18 Mô phỏng Function 24
Hình 19 Mô phỏng Timing 24
Hình 20 Synthesize toàn mạch 25
Hình 21 Synthesize của FSM 26
Hình 22 Synthesize của bộ đếm 26
Hình 23 Sơ đồ FSM 27
Hình 24 Tham số thời gian của mạch tuần tự 27
Trang 5LỜI NÓI ĐẦU
Qua thời gian học tập và nghiên cứu học phần “ THIẾT KẾ VI MẠCH LẬP TRÌNH ĐƯỢC ” với sự giảng dạy truyền đạt kiến thức một cách chuyên sâu và nhiệt
tình của thầy Nguyễn Xuân Tiến – Giáo viên khoa Điện tử Viễn thông trường Đại học
Kỹ thuật Hậu cần CAND, chúng em đã học tập được nhiều kiến thức bổ ích về thiết kế
vi mạch lập trình được nói chung và sơ lược về ngôn ngữ lập trình VHDL nói riêng
Ngày nay, ngôn ngữ mô tả phần cứng VHDL được dùng nhiều để thiết kế chocác thiết bị logic lập trình được PLD từ loại đơn giản đến các loại phức tạp như FPGA.Việc xử lý tín hiệu trong các thiết bị điện tử hiện đại đều dựa trên cơ sở nguyên lý số.Bởi vậy việc hiểu sâu sắc về điện tử số là điều không thể thiếu được đối với kỹ sư điện
tử hiện nay Nhu cầu hiểu biết về kỹ thuật số không phải chỉ riêng đối với các kỹ sưđiện tử mà còn đối với nhiều cán bộ kỹ thuật chuyên ngành khác có sử dụng các thiết
bị điện tử
Là một trong những học viên lứa đầu của hệ đại học, hơn bao giờ hết chúng emnhận thức được rỏ ràng nhiệm vụ cũng như trách nhiệm của bản thân phải ra sức họctập và trau dồi kiến thức mỗi ngày để cố gắng hoàn thiện bản thân
Để tổng kết môn học, chúng em xin được trình bày báo cáo đề tài:
Sử dụng VHDL, Thiết kế và mô phòng bộ đếm sản phẩm có 2 đầu vào (chỉ đếm tiến) (mỗi đầu vào là 1 sensor, hiển thị trên led 2 đôi 7 thanh)
Đếm tối da 99 rồi reset về 0
Bài báo cáo của chúng em gồm 3 chương:
- Chương 1: Cơ sở lý thuyết
- Chương 2: Thiết Kế và Mô Phỏng Bộ Đếm 00 đến 99 Reset về 0 bằng NgônNgữ VHDL
- Chương 3: Thiết Kế và Mô Phỏng Bộ Đếm 00 đến 99 Reset về Bằng NgônNgữ VHDL Trên Phần Mềm Quartus Prime 16.0 Lite Edition
Trong quá trình thực hiện bài báo cáo, do kiến thức và kinh nghiệm hạn chế,thời gian đan xen nhiều công việc của nhà trường nên bài báo cáo không thể tránh khỏinhững thiếu sót về mặt nội dung cũng như hình thức trình bày, chúng em rất mongđược sự đóng góp ý kiến của các thầy, cô và các đồng chí đồng đội để bài báo cáođược hoàn thiện hơn nữa
Chúng em xin trân thành cảm ơn!
Trang 6Chương 1
CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu phần mềm Quartus
Quartus là công cụ phần mềm phát triển của hãng Altera, cung cấp môi trườngthiế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 aprogrammable 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áclinh 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ônngữ: 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 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ầncứng EDA khác
- Quartus 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 có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã, biêndị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, các bản vẽ như: AHDL TextDesign Files (.tdf), EDIF Input Files (.edf), VHDL Design Files (.vhd), and VerilogHDL Design Files (.v) để tạo ra thành phần thiết kế mức thấp
Quartus 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êndịch Quartus nằm ở trung tâm hệ thống, cung cấp quy trình thiết kế mạnh cho phép tùybiế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 tincảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản hơn
Trang 71.2 Các phương pháp thiết kế vi mạch số
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ứng HDL (HardwareDescription Language)
1.2.1 Mô tả bằng sơ đồ
Vi mạch được mô tả trực quan bằng cách ghép nối các phần tử logic khác nhaumột cách trực tiếp giống như 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ănglogic, thông số tải vào ra, thời gian 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áthiện và sửa lỗi một cách trực tiếp
Hình 1 Mô tả mạch số bằng sơ đồ
Ngày nay, các mạch tích hợp ngày càng thực hiện được nhiều chức năng do đó
mà vấn đề thiết kế mạch càng trở nên phức tạp Những phương pháp truyền thống nhưdùng phương pháp tối thiểu hoá hàm Boolean hay dùng sơ đồ các phần tử không cònđáp ứng được các yêu cầu đặt ra khi thiết kế Nhược điểm lớn nhất của các phươngphá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ácbước tối thiểu hoá hàm này ta lại phải chuyển từ hàm Boolean sang sơ đồ mạch của 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ácchứ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ệnthủ công không có bất kỳ sự trợ 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ụ hỗ trợ trong việc vẽ sơ đồ mạch của hệ thống và chuyển từ
Trang 8sơ đồ mạch sang công cụ tổng hợp mạch vật lý dùng công cụ Synthesis Một nhượcđiểm khác nữa của phương pháp thiết kế truyền thống là sự giới hạn về độ phức tạpcủa hệ thống được thiết kế Phương pháp dùng hàm Boolean chỉ có thể dùng để thiết
kế hệ thống lớn nhất biểu diễn bởi vài trăm hàm Còn phương pháp dựa trên sơ đồ chỉ
có thể dùng để thiết kế hệ thống lớn nhất chứa khoảng vài nghìn phần tử
lý sang mã ngôn ngữ mô phỏng phần cứng được thực hiện hoàn toàn tự động
Nhờ tính dễ kiểm tra thử nghiệm hệ thống trong suốt quá trình thiết kế màngười thiết kế có thể dễ dàng phát hiện các lỗi thiết kế ngay từ những giai đoạn đầu,giai đoạn chưa đưa vào sản xuất thử, do đó tiết kiệm được lượng chi phí đáng kể bởi từ
ý thiết kế đến tạo ra sản phẩm đúng như mong muốn là một việc rất khó tránh khỏinhững khó khăn, thất bại Khi mọi lĩnh vực của khoa học đều phát triển không ngừngthì sự phức tạp của hệ thống điện tử cũng ngày một tăng theo và gần như không thểtiến hành thiết kế thủ công mà không có sự trợ giúp cuả các loại máy tính hiện đại.Ngày nay, ngôn ngữ mô tả phần cứng HDL được dùng nhiều để thiết kế cho các thiết
bị logic lập trình được PLD từ loại đơn giản đến các loại phức tạp như ma trận cổnglập trình được FPGA Có ba ngôn ngữ mô tả phần cứng phổ biến hiện nay là:
1.2.2.1 Verilog HDL
Ra đời năm 1983, do hai kỹ sư Phil Moorby và Prabhu Goel làm việc tạiAutomated Integrated Design Systems (sau này thuộc sở hữu của Cadence) Verilogđược IEEE chính thức tiêu chuẩn hóa vào năm 1995 và sau đó là các phiên bản năm
2001, 2005 Đây là một ngôn ngữ mô tả phần cứng có cấu trúc và cú pháp gầngiống với ngôn ngữ lập trình C, ngoài khả năng hỗ trợ thiết kế logic thì Verilog rấtmạnh trong việc hỗ trợ cho quá trình kiểm tra thiết kế Một số đặc điểm của Verilog:
- Verilog là một trong những phương thức thiết bị có thể xử lý nhiều mức thiết
kế khác nhau Nó có thể chuẩn hóa dữ liệu chuyển đến giữa các giai đoạn thiết bị vàlàm đơn giản hóa lập tài liệu
- Nền tảng mạnh: Chuẩn hóa 1995 bởi IEEE, hỗ trợ công nghiệp, phổ biếncho các nhà ASIC vì dễ học cho phép mô phỏng nhanh và tổng hợp hiệu quả
- Tính đa năng: Cho phép quá trình thiết kế thực thể thực hiện trong môitrường thiết kế cả phân tích và kiểm tra Tuy nhiên Verilog không thích hợp lắm chocác thiết kế mức hệ thống phức tạp, đây là trở ngại chính của Verilog
- Hỗ trợ công nghiệp: Phổ biến cho các nhà thiết kế ASIC vì dễ học , chophép mô phỏng nhanh và tổng hợp hiệu quả
- Có khả năng mở rộng IEEE Std 1364 chứa định nghĩa của PLI Verilog(Programming Language Interface) cho phép mở rộng khả năng của Verilog Nó là
Trang 9một tập hợp các bộ định tuyến cho phép các chức năng bên ngoài truy nhập thông tinchức năng thiết kế Verilog.
- Một module Verilog có thể thể hiện được cả giao diện và thân chươngtrình của một hệ thống
1.2.2.2 VHDL
VHDL viết tắt của Very-high-speed intergrated circuits Hardware Description Language, hay ngôn ngữ mô tả cho các mạch tích hợp tốc độ cao VHDL lần đầu
tiên được phát triển bởi Bộ Quốc Phòng Mỹ nhằm hỗ trợ cho việc thiết kế những
vi mạch tích hợp chuyên dụng (ASICs) VHDL cũng được IEEE chuẩn hóa vào cácnăm 1987, 1991, 2002, và 2006 và mới nhâts 2009 VHDL được phát triển dựa trêncấu trúc của ngôn ngữ lập trình Ada Cấu trúc của mô tả VHDL tuy phức tạp hơnVerilog nhưng mang tính logic chặt chẽ và gần với phần cứng hơn
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ộtphươ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ônngữ 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 tathấy VHDL có một số ưu điểm hơn hẳn các ngôn ngữ khác:
- Thứ nhất là tính công cộng: VHDL được phát triển dưới sự bảo trợ củachính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE VHDL được sự hỗ trợ củanhiề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ế VHDLcho 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 matrậ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ôngnghệ 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ủaphầ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ốngnhấ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ấpnhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô tả đáp ứng được tiêuchuẩ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ũngnhư một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trongmộ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ácthiế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ể
Trang 10đượ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ềungười Bên trong ngôn ngữ VHDL có nhiều tính năng 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.
Ngoài hai ngôn ngữ kể trên còn có ngôn ngữ Altera HDL được phát triển bởicông ty bán dẫn Altera với mục đích dùng thiết kế cho các sản phẩm FPGA và CPLDcủa Altera AHDL có cấu trúc hết sức chặt chẽ và là ngôn ngữ rất khó sử dụng nhất
so với 2 ngôn ngữ trên Bù lại AHDL cho phép mô tả thực thể logic chi tiết vàchính xác hơn Ngôn ngữ này ít phổ biến tuy vậy nó cũng được rất nhiều chương trìnhphần mềm hỗ trợ mô phỏng biên dịch
1.3 Giới thiệu về phương pháp máy trạng thái
1.3.1 Giới thiệu
Một thiết kế mạch số có thể được chia làm 2 thành phần: bộ xử lý dữ liệu
và bộ điều khiển Mối quan hệ giữa bộ điều khiển và bộ xử lý dữ liệu trong mạch được biểu diễn.
Máy trạng thái hữu hạn (FSM) là một công nghệ mô hình hoá đặc biệt cho các mạch logic tuần tự Mô hình đó có thể được giúp đỡ trong thiết kế của những loại hệ thống nào đó, đặc biệt là các thao tác của những hệ thống đó theo khuôn dạng tuần tự hoàn toàn xác định.
Hình sau đây chỉ ra sơ đồ khối của một máy trạng thái một pha Trong hình này, phần mạch dãy chứa các mạch dãy (flip- flops), phần cao chứa mạch logic tổ hợp.
Hình 2 Sơ đồ máy trạng thai
Phần mạch tổ hợp có 2 đầu vào và 2 đầu ra:
- Đầu vào thứ nhất: là đầu vào trạng thái hiện tại của máy.
- Đầu vào thứ 2: là đầu vào từ bên ngoài.
Trang 11- Đầu ra thứ nhất: là đầu ra phía ngoài
- Đầu ra thứ 2: là trạng thái tiếp theo của máy.
Phần mạch dãy có:
- 3 đầu vào: clock, reset, và trạng thái tiếp theo
- 1 đầu ra: trạng thái hiện tại.
Tất cả các flip-flop đều nằm trong phần này, các tín hiệu clock và reset phải được kết nối với các flip – flop để thực hiện việc điều khiển.
Như vậy, một máy ôtômát hữu hạn là một bộ 6 thông số <X, Y, S, s0, d,l>, trong đó:
X - Tập hợp các tín hiệu vào của ôtômat:
Hàm d(s, x) – hàm chuyển trạng thái của ôtômat
Hàm l(s,x) – hàm đầu ra của ôtômat.
Tương ứng với các phương pháp tính toán hàm chuyển trạng thái và hàm
ra, chúng ta có các loại ôtômat khác nhau Hai dạng ôtômat hữu hạn chuyên dụng là: ôtômat Moore và ôtômat Mealy.
Quay lại với hình vẽ trên, mạch cần thiết kế được chia làm hai đoạn.
Việc chia đoạn như thế này sẽ giúp chúng ta thiết kế tốt hơn Chúng ta sẽ thiết kế 2 phần theo những cách khác nhau Cụ thể trong môi trường VHDL, phần mạch dãychúng ta sẽ thực hiện trong PROCESS và phần mạch tổ hợp chúng ta có thể thực hiện theo cấu trúc hoặc tuần tự hoặc kết hợp cả cấu trúc lẫn tuần tự.
Tuy nhiên mã tuần tự có thể áp dụng cho cả 2 loại logic: tổ hợp và tuần tự.
Thông thường các tín hiệu clock và các tín hiệu reset trong phần mạch dãy sẽ xuất hiện trong PROCESS (trừ khi tín hiệu reset là đồng bộ hoặc không được sử dụng, tín hiệu WAIT được sử dụng thay cho lệnh IF) Khi tín hiệu reset được xác nhận, trạng thái hiện tại sẽ được thiết lập cho trạng thái khởi tạo của hệ thống Mặt khác, tại sườn đồng hồ thực tế, các flip-flop sẽ lưu trữ trạng thái tiếp theo, do đó sẽ chuyển nó tới đầu ra của phần mạch dãy(trạng thái hiện tại).
Một điều quan trọng liên quan tới phương pháp FSM là : về nguyên tắc chung là bất kỳ một mạch dãynào cũng có thể được mô hìnhhoá thành 1 máy trạng thái, nhưng điều này không phải luôn luôn thuận lợi Vì có nhiều trường
Trang 12hợp (đặc biệt là các mạch thanh ghi như: bộ đếm,…) nếu thiết kế theo phương pháp FSM thì mã nguồn có thể trở nên dài hơn, phức tạp hơn, mắc nhiều lỗi hơn
so với phương pháp thông thường.
Như thành một quy tắc nhỏ, phương pháp FSM thì thích hợp với các hệ thống mà thao tác của nó là một dãyhoàn toàn được cấu trúc, ví dụ: các mạch điều khiển số Vì đối với các hệ thống loại này thì tất cả các trạng thái của nó có thể dễ dàng được liệt kê Khi soạn thảo mã VHDL, thì các trạng thái này sẽ được khai báo trong phần đầu của phần ARCHITECTURE dưới dạng kiểu dữ liệu liệt
kê được định nghĩa bởi người sử dụng.
1.3.2 Thiết kế theo kiểu 1 (thiết kế theo mô hình moore)
Có vài phương pháp có thể được hình thành để thiết kế một FSM Trong
đó phần mạch dãy của máy trạng thái sẽ tách biệt với phần mạch tổ hợp của nó (hình vẽ 1.3.1) Tất cả các trạng thái của máy luôn luôn được khai báo rõ ràng bằng cách sử dụng kiểu dữ liệu liệt kê.
Thiết kế theo mô hình moore chúng ta thiết kế theo 2 bước:
- Thiết kế mạch dãy.
- Thiết kế phần mạch tổ hợp.
1.3.3 Thiết kế theo kiểu 2
Ta thấy trong kiểu thiết kế 1 thì chỉ có trạng thái hiện tại được lưu trữ Tất
cả các mạch.
Trong trường hợp này nếu mạch là máy Mealy (đầu ra của nó phụ thuộc vào đầu vào hiện tại), đầu ra có thể thay đổi khi đầu vào thay đổi (đầu ra không đồng bộ).
Trong nhiều ứng dụng, tín hiệu được yêu cầu là đồng bộ, thì đầu ra sẽ chỉ cập nhật khi thay đổi sườn clock Để tạo ra máy đồng bộ Mealy, đầu ra phải được lưu trữ tốt, như:
Trang 13Hình 3a Sơ đồ mạch kiểu
1
Hình 3b Sơ đồ mạch kiểu 2
Cấu trúc như trong hình 3b sẽ là đối tượng của thiết kế kiểu 2.
Trang 14CHƯƠNG 2 THIẾT KẾ BỘ ĐẾM 00 ĐẾN 99 RESET VỀ 0
2.1 Vẽ sơ đồ FSM
FSM là viết tắt của cụm từ Finite State Machine có nghĩa là Máy trạng thái hữuhạn, FSM có 2 loại đó là:
- FSM loại Moore (phụ thuộc vào trạng thái)
- FSM loại Mealy (phụ thuộc vào trạng thái - tín hiệu vào)
Trong bài báo cáo này chúng em sẽ sử dụng FSM loại Moore để
vẽ sơ đồ FSM Với đề bài là thiết kế một bộ đếm từ 00 đến 99 córeset thì đầu ra chỉ phụ thuộc vào kết quả của trạng thái hiện tại.Nhìn một cách tổng thể, chúng ta sẽ cần có 2 máy có 10 trạng thái.Các trạng thái ở đây được gọi là zero, một,…, chín Đồ hình trạng tháicủa máy được cho là như sau:
Trang 15Hình 4 Sơ đồ FSM biểu thị ra BCD-to-7 segment
Bước 1: Vẽ
sơ đồ trạng thái
Bước 2:
Tối thiểu
hoá số
Trang 16lượng các trạng thái
Trang 19lượng các trạng thái