1. Trang chủ
  2. » Giáo án - Bài giảng

Bài thí nghiệm 1 Thiết kế hệ thống số chuyên dụng

18 243 0

Đ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 18
Dung lượng 1,72 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

23PHẦN HƯỚNG DẪN THỰC HÀNHI. THỰC HÀNH NGÔN NGỮ MÔ TẢ PHẦN CỨNG1. BÀI THÍ NGHIỆM SỐ 1: MÔ PHỎNG BỘ CỘNG 4BIT1.1. Mục đích, yêu cầua) Mục đíchĐây là bài thực hành mạch logic tổ hợp cơ bản, sinh viên sẽ được giới thiệuvề lý thuyết xây dựng một khối mạch tổ hợp thông qua ví dụ về khối cộng4bit, cách sử dụng các kiểu mô tả kiến trúc kiểu luồng dữ liệu và kiểu cấu trúc.Ngoài ra, bài thực hành sẽ có hướng dẫn chi tiết việc mô phỏng bằngModelSim, Xilinx ISE.b) Yêu cầuSinh viên nắm vững các câu lệnh và cú pháp sử dụng trong mạch tổ hợpphục vụ cho việc viết mã nguồn mô tả phần cứng cho bộ cộng 4bit.1.2. Tóm tắt lý thuyếtBộ cộng được thiết kế đơn giản nhất bằng cách ghép nối tiếp 4 khốifull_adder 1bit.Hình 1.1. Cấu trúc của 4 bitadderKhối full_adder như trên lý thuyết có thể mô tả theo các kiểu kiến trúckhác nhau, ở đây để đơn giản chọn kiểu mô tả theo luồng dữ liệu (dataflow).AsBCout Σ CinSum(3)A(3) B(3)Sum(2)A(2) B(2)Sum (1)A(1) B(1)Sum (0)A(0) B(0) CinC(2) C(1) C(0)CoutΣfull_adderΣfull_adderΣfull_adderΣfull_adderSum241.3. Nội dung thí nghiệmNội dung 1: Viết mã nguồn bộ cộng 4bit bằng ngôn ngữ VHDL.Nội dung 2: Thực hành mô phỏng bộ cộng 4bit trên ModelSim.Nội dung 3: Thực hành mô phỏng bộ cộng 4bit trên Xilinx ISE.Nội dung 4: Thực hành mô phỏng bộ cộng 4bit trên Xilinx Vivado.Nội dung 5: Bài tập phát triển thêm.1.4. Trình tự thí nghiệma) Chuẩn bị thí nghiệm Vị trí thực hành bài thí nghiệm:+ Các bài thí nghiệm môn học Thiết kế logic số được tiến hành tạiphòng thí nghiệm của Bộ môn Kỹ thuật Xung Số Vi xử lý.+ Mỗi nhóm học viên được bố trí ngồi một bàn thí nghiệm. Dụng cụ, vật tư và trang thiết bị thí nghiệm:+ Trên mỗi bàn thí nghiệm bố trí 01 máy tính, 01 panel thí nghiệm.+ Học viên tự đăng ký mượn thêm các dụng cụ phục vụ thí nghiệm vàcác linh kiện liên quan đến bài thí nghiệm với giáo viên hướng dẫn thí nghiệm.+ Trong trường hợp khi giáo viên hướng dẫn thí nghiệm đã hướng dẫnđầy đủ các quy tắc an toàn về nguồn điện, an toàn mạch thí nghiệm mà học viênlàm sai, không tuân thủ theo các nguyên tắc, gây ra hiện tượng chập cháy,hỏng hóc linh kiện sẽ phải hoàn toàn chịu trách nhiệm.b) Tiến hành thí nghiệmNội dung 1: Viết mã nguồn bộ cộng 4bit bằng ngôn ngữ VHDL.Bước 1. Tạo thư mục làm việc.Tạo thư mục con có tên adder4 trong thư mục D:DLD_Labs. Thư mụclàm việc sẽ là D:DLD_LabsBasic_Labsadder4.Bước 2. Tạo file mã nguồn cho bộ cộng toàn phần trên Notepad++.Mở phần mềm Notepad++, soạn thảo file mã nguồn của bộ cộng 4bit,soạn thảo xong chọn FileSave, và lưu file dưới tên full_adder.vhd trong thưmục làm việc D:DLD_LabsBasic_Labsadder4, lưu ý để lưu dưới dạng .vhdtại ô File types chọn All files ().Nội dung của file code VHDL full_adder.vhd full_adder.vhd 1 bit adder 25library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity full_adder isport (A : in std_logic;B : in std_logic;Cin : in std_logic;S : out std_logic;Cout: out std_logic);end full_adder;architecture dataflow of full_adder isbeginS B(0), Cin => Ci,S => Sum(0), Cout => C(0));u1: component full_adderport map (A => A(1), B => B(1), Cin => C(0),S =>Sum(1), Cout => C(1));u2: component full_adderport map (A => A(2), B => B(2), Cin => C(1),S =>Sum(2), Cout => C(2));u3: component full_adderport map (A => A(3), B => B(3), Cin => C(2),S =>Sum(3), Cout => Co);end dataflow;Nội dung 2: Mô phỏng bộ cộng 4bit trên ModelSim.Bước 1. Thiết lập thư mục làm việc.Hình 1.3. Chọn đường dẫn tới thư mục làm việcKhởi động ModelSim, tại menu File chọn Change Directory, tại hộpthoại Change directory chọn đường dẫn tới thư mục làm việcD:DLD_LabsBasic_Labsadder4 (Hình 1.3).Bước 2. Tạo thư viện work trong ModelSim.27Gõ lệnh sau vào cửa sổ Transcript của ModelSim:vlib workHình 1.4. Tạo thư viện work trên cửa sổ TranscriptBước 3. Biên dịch các file mã nguồn.Gõ các lệnh sau vào cửa sổ Transcript.vcom full_adder.vhdvcom adder4.vhdHình 1.5. Biên dịch các file mã nguồn VHDLKhi trình biên dịch phát hiện ra lỗi về mặt cú pháp thì nó sẽ thông báovị trí và nội dung gây ra lỗi trong mã nguồn. Nếu như mã nguồn của thiết kếkhông có lỗi thì biên dịch xong sẽ cho ra kết quả như hình trên.Bước 4. Kiểm tra nhanh thiết kế.28Tiến hành kiểm tra nhanh thiết kê bằng cách đưa vào đầu vào của DUTcác giá trị cố định và kiểm tra trực tiếp kết quả đầu ra. Kiểm tra nhanh cho phépphát hiện và sửa những lỗi về mặt chức năng đơn giản trước khi bước vàokiểm tra với số lượng lớn tổ hợp giá trị đầu vào.Để kiểm tra nhanh bộ cộng thiết kế ở trên tạo thêm một fileadder4_test.vhd trong thư mục làm việc với nội dung như sau: adder4_test library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity adder4_test isend adder4_test;architecture test of adder4_test iscomponent adder4 isport(A : in std_logic_vector(3 downto 0);B : in std_logic_vector(3 downto 0);CI : in std_logic;SUM: out std_logic_vector(3 downto 0);CO : out std_logic);end component;signal A : std_logic_vector(3 downto 0):= 0101;signal B : std_logic_vector(3 downto 0):= 0110;signal Ci : std_logic := 1;signal Sum: std_logic_vector(3 downto 0);signal Co : std_logic;beginDUT: component adder4port map(A => A, B => B, CI => CI,Sum => Sum, Co => Co);end test;Mã nguồn kiểm tra thiết kế adder4_test là thiết kế không nhất thiếtchứa bất cứ cổng vào ra nào ở phần khai báo. Kiến trúc của nó gồm hai phần,phần khai báo tín hiệu sẽ khai báo các tín hiệu đầu vào của adder4; đối vớicác tín hiệu đầu ra để trống. Phần hai là khai báo sử dụng adder4 như mộtkhối con có tên là DUT và gán các cổng vào ra tương ứng như trên.Bước 5. Tiến hành biên dịch file mã nguồn.Biên dịch file adder4_test.vhd bằng lệnh sau trong cửa sổ Transcript:vcom adder4_test.vhdBước 6. Khởi tạo mô phỏng thiết kế.Tiến hành khởi tạo mô phỏng thiết kế bằng lệnh:29vsim adder4_testHình 1.6. Khởi tạo mô phỏng thiết kếBước 7. Bổ sung các tín hiệu vào cửa sổ wave form để quan sát, đểthực hiện gõ lệnh sau vào cửa sổ Transcript.add wave sim:adder4_testLệnh trên sẽ hiển thị toàn bộ các tín hiệu tương ứng trong componentadder4 lên giản đồ sóng. Sau khi thực hiện các bước trên có thể tiến hànhchạy mô phỏng bằng nút công cụ Run trên thanh công cụ cửa sổ giản đồ sóng:Bước 8. Chạy mô phỏng và quan sát kết quả trên waveform bằng cáchgõ lệnh sau vào cửa sổ Transcript.run 1000 nsKhi gặp lệnh này chương trình sẽ chạy mô phỏng trong thời gian 1000 ns.Kết quả mô phỏng được thể hiện trên hình 1.7.Quan sát trên hình 1.7 và so sánh với mã nguồn của adder4_testbenchcó thể thấy với a = “0101” = 5, b = “0110” = 6, CI = ‘1’ thì cho ra kết quảsum = “1100” = 12.Bước 9. Để có thể dùng lại nhiều lần mà không phải gõ lại mã phục vụmô phỏng, tạo file run.do lưu vào trong thư mục làm việc với nội dung sau.quit simvlib workvcom full_adder.vhdvcom adder4.vhdvcom adder4_test.vhdvsim adder4_testadd wave sim:adder4_testrun 1000 ns30Dòng thứ nhất để kết thúc bất kỳ mô phỏng nào đang thực thi nếu nótồn tại, dòng thứ hai tạo thư viện work nếu nó chưa tồn tại, tiếp đến là cáclệnh vcom để biên dịch các file mã nguồn, lệnh vsim để tiến hành mô phỏng,sau đó là các lệnh bổ sung tín hiệu cần theo dõi vào giản đồ sóng. Lệnh cuốirun 1000 ns dùng để chạy mô phỏng trong thời gian đã được ấn định.Hình 1.7. Kết quả mô phỏng adder4 trên giản đồ sóng ModelSimBước 10. Để biên dịch và chạy lại mô phỏng một cách tự động, tiến hànhgõ lệnh như sau trong cửa sổ Transcript của ModelSim.do run.doLưu ý rằng việc tạo tệp kịch bản mô phỏng (script) này sẽ rất tiện lợicho các thiết kế lớn và phức tạp. Trên thực tế người lập trình có thể phải thực hiệnmô phỏng nhiều lần trước khi có thể kết luận về tính đúng đắn của thiết kế,script run.do giúp quá trình mô phỏng được thực thi nhanh chóng, chính xácmà không phải lặp lại các thao tác lệnh như trong các bước từ 29.Nội dung 3: Thực hành mô phỏng bộ cộng 4bit trên Xilinx ISE.Bước 1. Khởi động Xilinx ISE.Tại menu File chọn New Project, tại của sổ thiết lập thuộc tính chọnđường dẫn tới thư mục làm việc D:DLD_LabsBasic_Labsadder4 chứa cáctệp mã nguồn vừa tạo adder4.vhd, full_adder.vhd.Đặt tên Project là project_ise_adder4 (học viên chú ý rằng tên này cóthể thay đổi tùy biến).31Hình 1.8. Tạo New Project trên phần mềm Xilinx ISEHình 1.9. Đặt tham số chip FPGA trên phần mềm Xilinx ISE32Chọn các thuộc tính mô tả mạch FPGA và nhấn Next, tiếp đó là Finish,kết thúc việc tạo Project (Hình 1.9).Lưu ý, tùy vào mạch cụ thể mà sẽ chọn cấu hình FPGA tương ứnggồm: Family, Device, Package and Speed. Đối với mạch thí nghiệm FPGAVXL2017 của Bộ môn, học viên chọn các thuộc tính như sau: Family Spartan6, Device XC6LSX25, Package FTG256, Speed 3.Bước 2. Bổ sung mã nguồn.Tiến hành thêm tất cả các tệp mã nguồn vào Project đã tạo, bằng cáchnhấn chuột phải vào biểu tượng Project đã tạo và chọn Add Source:Hình 1.10. Bổ sung file mã nguồn VHDL trên phần mềm Xilinx ISEClick chuột để chọn các tệp nguồn, chọn thuộc tính “Simulation”nhằm chỉ ra tệp này chỉ để mô phỏng mà không tạo ra thiết kế trên mạch.Hình 1.11. Chọn thuộc tính Simulation trên phần mềm Xilinx ISE33Bước 3. Chọn chế độ làm việc.Trên cửa sổ thiết kế (Design) của Xilinx ISE có hai nút tùy chọn:Implementation dùng để mô phỏng thực thi và Simulation dùng để mô phỏnglogic, nhấn chọn Simulation.Hình 1.12. Cửa sổ Simulation trên phần mềm Xilinx ISEBước 4. Kiểm tra nhanh thiết kế.Hình 1.13. Kiểm tra lỗi mã nguồn trên phần mềm Xilinx ISETại mục Hierarchy, click chuột chọn phần kiểm tra nhanh (add4_test),tại mục Process ở cửa sổ bên dưới, click chọn Behavioral Check Syntax đểkiểm tra thiết kế có lỗi hay không, nếu có lỗi cú pháp chương trình, tiến hànhsửa, chọn lại Behavioral Check Syntax đến khi chương trình báo không còn lỗi.Bước 5. Mô phỏng và quan sát trên giản đồ sóng.Tại mục Process, click đúp chuột vào Simulate Behavioral Model nằmbên dưới mục Behavioral Check Syntax, thu được kết quả trên giản đồ sóng.34Hình 1.14. Giản đồ sóng mô phỏng trên phần mềm Xilinx ISENội dung 4: Thực hành mô phỏng bộ cộng 4bit trên Xilinx Vivado.Bước 1. Tạo Project mới.Hình 1.15. Khởi tạo Project mới trên phần mềm Xilinx VivadoKhởi động phần mềm Xilinx Vivado, tại cửa sổ Quick Start nhấn vàobiểu tượng “Create New Project”, sẽ xuất hiện hộp thoại ở bên cạnh, nhấnNext để tiến hành các bước tiếp theo trong quá trình tạo Project mới.Bước 2. Tạo đường dẫn cho và đặt tên cho Project.35Hình 1.16. Tạo đường dẫn và đặt tên cho Project trên VivadoTại thư mục adder4 đã tạo ra và chứa code VHDL của bộ cộng 4bittạo một Project mới và đặt tên là project_vidado_adder4 nhằm gợi nhớProject này được tạo ra trên Xilinx Vivado.Bước 3. Chọn kiểu Project cần tạo.Hình 1.17. Chọn kiểu cho Project mới là RTL36Bước 4. Bổ sung tệp mã nguồn VHDL vào Project mới.Hình 1.18. Thực hiện lệnh bổ sung mã nguồn vào Project trên VivadoNhấn chuột vào nút “Add Files” như trên hình 1.18, khi đó sẽ xuất hiệnmột cửa sổ mới cho phép tùy chọn bổ sung các tệp mã nguồn vào Project củabộ cộng 4bit vừa tạo trên Vivado.Hình 1.19. Lựa chọn các file mã nguồn để bổ sung vào Project37Hình 1.20. Các file mã nguồn được bổ sung vào Project mới trên VivadoTiếp đó, nhấn Next liên tiếp để bỏ qua hai tùy chọn Add Existing IPvà Add Constraints, ở những Project đơn giản chưa cần dùng tới hai tùy chọn này.Bước 5. Chọn cấu hình chip FPGA dùng thực thi trên mạch.Hình 1.21. Tùy chọn cấu hình chip FPGA dùng để thực thiSau hai lần bỏ qua các cửa sổ bổ sung thêm tệp nguồn, cửa sổ cuốiDefault Part sẽ xuất hiện phục vụ cho việc lựa chọn cấu hình chip FPGAdùng để thực thi. Khác với ISE, trong Vivado bước này thực hiện sau cùng.38Việc đặt các tham số cũng tùy thuộc vào mạch FPGA cụ thể, ví dụ trongtrường hợp này có thể chọn Artix 7, XC7A100T, FTG256.Sau khi Project mới được tạo ra, có thể quan sát các thông tin vềProject này trong bảng tổng hợp dưới đây sau khi nhấn nút lệnh Next trêncủa sổ Default Part ở hình bên trên.Hình 1.22. Kết quả tổng hợp các thông tin liên quan đến Project mớiBước 6. Tiến hành chạy mô phỏng trên Vivado cho bộ cộng 4bit.Hình 1.23. Thực hiện mô phỏng bộ cộng 4bit trên Vivado39Trên cửa sổ Project Manager ở mép trái của giao diện phần mềmXilinx Vivado (Hình 1.23) là chuỗi các lệnh được sắp xếp theo trình tự thứ bậctừ trên xuống dưới tương ứng với quá trình từ mô phỏng logic cho đối tượngcho tới thực thi trên mạch FPGA.Hình 1.24. Kết quả mô phỏng bộ cộng 4bit trên phần mềm VivadoTrên cửa sổ Sources nhấn chọn đối tượng cần mô phỏng (adder4_test),tiếp đó tại cửa sổ Project Manager ở mép trái giao diện Vivado nhấn chuộtphải vào tùy chọn “Run Simulation”, tiếp đó nhấn vào lệnh “Run BehavioralSimulation” trên menu xổ xuống, quá trình mô phỏng bộ cộng 4bit sẽ bắtđầu được tiến hành trên Vivado. Kết quả mô phỏng trên giản đồ sóng củaphần mềm Vivado được thể hiện trên hình 1.24.Nội dung 5: Bài tập phát triển thêm.Bài 1. Thiết kế khối cộng 8 bit bằng cách ghép nối tiếp hai khối cộng 4 bit.Bài 2. Thiết kế khối biến đổi từ mã nhị phân sang thermometer codecho số nhị phân 3 bit, ví dụ chuỗi đầu ra có 8 bit hiển thị theo thermometercode với số lượng bit ‘1’ từ bên phải sang quy định bởi mã nhị phân đầu vàoVí dụ: 010 → 00000011, 110 → 0011111111.Bài 3. Thiết kế khối tính toán số lượng bit 1 trong một chuỗi 8 bit nhịphân, đầu ra là một số 4 bit nhị phân biểu diễn không dấu của số lượng bit 1.Ví dụ: Đầu vào là 11011101, đầu ra là 0110.40Bài 4. Thiết kế bộ cộng hai số mã NBCD, đầu ra là một số dạng mãNBCD có hai chữ số thể hiện bằng 8 bit như ví dụ sau.Ví dụ: A+B = CD, A = 6(0110), B = 9(1001); 6+9 = 15,nên C = 1(0001) D = 5(0101), kết quả 8 bit CD = 0001 0101.Bài 5. Thiết kế khối cộng, trừ sử dụng toán tử, tín hiệu SUB = 1 thực hiệnphép trừ và SUB = 0 thực hiện phép cộng.ASumBCout Σ Cin3N bit31 0Bs_BA Sub Cin3ADDERSUBTRACTORc) Tổng hợp, xử lý và đánh giá kết quả thí nghiệmQua buổi thí nghiệm, giáo viên sẽ tiến hành đánh giá sơ bộ về kết quảthí nghiệm và ý thức khi tham gia thí nghiệm của các học viên. Kết hợp vớiphần báo cáo kết quả thí nghiệm, giáo viên sẽ tiến hành chấm điểm bài thí nghiệmđối với từng học viên.1.5. Báo cáo thí nghiệma) Hướng dẫn viết báo cáo thí nghiệmSau mỗi buổi thí nghiệm, học viên sẽ viết báo cáo thí nghiệm theomẫu, và nộp bản báo cáo vào đầu buổi thí nghiệm tiếp theo cho giáo viên.b) Mẫu báo cáo thí nghiệmMẫu báo cáo ở Phụ lục của giáo trình.

Trang 1

23

PHẦN HƯỚNG DẪN THỰC HÀNH

I THỰC HÀNH NGÔN NGỮ MÔ TẢ PHẦN CỨNG

1 BÀI THÍ NGHIỆM SỐ 1: MÔ PHỎNG BỘ CỘNG 4-BIT

1.1 Mục đích, yêu cầu

a) Mục đích

Đây là bài thực hành mạch logic tổ hợp cơ bản, sinh viên sẽ được giới thiệu

về lý thuyết xây dựng một khối mạch tổ hợp thông qua ví dụ về khối cộng 4-bit, cách sử dụng các kiểu mô tả kiến trúc kiểu luồng dữ liệu và kiểu cấu trúc Ngoài ra, bài thực hành sẽ có hướng dẫn chi tiết việc mô phỏng bằng ModelSim, Xilinx ISE

b) Yêu cầu

Sinh viên nắm vững các câu lệnh và cú pháp sử dụng trong mạch tổ hợp phục vụ cho việc viết mã nguồn mô tả phần cứng cho bộ cộng 4-bit

1.2 Tóm tắt lý thuyết

Bộ cộng được thiết kế đơn giản nhất bằng cách ghép nối tiếp 4 khối full_adder 1-bit

Hình 1.1 Cấu trúc của 4 bit-adder

Khối full_adder như trên lý thuyết có thể mô tả theo các kiểu kiến trúc khác nhau, ở đây để đơn giản chọn kiểu mô tả theo luồng dữ liệu (dataflow)

A s

B Cin

Σ

Cout

Sum(3)

Sum(2)

Sum (1)

Sum (0)

A(0) B(0) Cin

C(0) C(1)

C(2)

Cout

Σ

full_adder Sum

Trang 2

24

1.3 Nội dung thí nghiệm

Nội dung 1: Viết mã nguồn bộ cộng 4-bit bằng ngôn ngữ VHDL Nội dung 2: Thực hành mô phỏng bộ cộng 4-bit trên ModelSim Nội dung 3: Thực hành mô phỏng bộ cộng 4-bit trên Xilinx ISE Nội dung 4: Thực hành mô phỏng bộ cộng 4-bit trên Xilinx Vivado Nội dung 5: Bài tập phát triển thêm

1.4 Trình tự thí nghiệm

a) Chuẩn bị thí nghiệm

- Vị trí thực hành bài thí nghiệm:

+ Các bài thí nghiệm môn học Thiết kế logic số được tiến hành tại phòng thí nghiệm của Bộ môn Kỹ thuật Xung Số & Vi xử lý

+ Mỗi nhóm học viên được bố trí ngồi một bàn thí nghiệm

- Dụng cụ, vật tư và trang thiết bị thí nghiệm:

+ Trên mỗi bàn thí nghiệm bố trí 01 máy tính, 01 panel thí nghiệm + Học viên tự đăng ký mượn thêm các dụng cụ phục vụ thí nghiệm và các linh kiện liên quan đến bài thí nghiệm với giáo viên hướng dẫn thí nghiệm

+ Trong trường hợp khi giáo viên hướng dẫn thí nghiệm đã hướng dẫn đầy đủ các quy tắc an toàn về nguồn điện, an toàn mạch thí nghiệm mà học viên làm sai, không tuân thủ theo các nguyên tắc, gây ra hiện tượng chập cháy, hỏng hóc linh kiện sẽ phải hoàn toàn chịu trách nhiệm

b) Tiến hành thí nghiệm

Nội dung 1: Viết mã nguồn bộ cộng 4-bit bằng ngôn ngữ VHDL

Bước 1 Tạo thư mục làm việc

Tạo thư mục con có tên adder4 trong thư mục D:\DLD_Labs Thư mục làm việc sẽ là D:\DLD_Labs\Basic_Labs\adder4

Bước 2 Tạo file mã nguồn cho bộ cộng toàn phần trên Notepad++

Mở phần mềm Notepad++, soạn thảo file mã nguồn của bộ cộng 4-bit,

soạn thảo xong chọn File/Save, và lưu file dưới tên full_adder.vhd trong thư mục làm việc D:\DLD_Labs\Basic_Labs\adder4, lưu ý để lưu dưới dạng vhd

tại ô File types chọn All files (*)

Nội dung của file code VHDL full_adder.vhd

full_adder.vhd 1 bit adder

Trang 3

-25

-library IEEE;

use IEEE.STD_LOGIC_1164 ALL ;

-entity full_adder is

port (A : in std_logic;

B : in std_logic;

Cin : in std_logic;

S : out std_logic;

Cout: out std_logic);

end full_adder;

architecture dataflow of full_adder is

begin

S <= A xor B xor Cin;

Cout <= (A and B) or (Cin and (a or b));

end dataflow;

-Hình 1.2 Tạo file mã nguồn VHDL mới Bước 3 Tạo file mã nguồn của bộ cộng 4-bit

Quy trình làm như Bước 2, sau khi tạo xong lưu file thành adder4.vhd với nội dung như sau:

- 4-bit adder (adder4.vhd) -

-

-library IEEE;

use IEEE.STD_LOGIC_1164 ALL ;

-entity adder4 is

port (A : in std_logic_vector(3 downto );

B : in std_logic_vector(3 downto );

Ci : in std_logic;

Sum: out std_logic_vector(3 downto );

Co : out std_logic);

end adder4;

Trang 4

26

-architecture dataflow of adder4 is

signal C: std_logic_vector(2 downto );

component full_adder

port (A : in std_logic;

B : in std_logic;

Cin : in std_logic;

S : out std_logic;

Cout: out std_logic);

end component ;

begin

u0: component full_adder

port map (A => A(0), B => B(0), Cin => Ci,

S => Sum(0), Cout => C(0));

u1: component full_adder

port map (A => A(1), B => B(1), Cin => C(0),

S =>Sum(1), Cout => C(1));

u2: component full_adder

port map (A => A(2), B => B(2), Cin => C(1),

S =>Sum(2), Cout => C(2));

u3: component full_adder

port map (A => A(3), B => B(3), Cin => C(2),

S =>Sum(3), Cout => Co);

end dataflow;

-Nội dung 2: Mô phỏng bộ cộng 4-bit trên ModelSim

Bước 1 Thiết lập thư mục làm việc

Hình 1.3 Chọn đường dẫn tới thư mục làm việc

Khởi động ModelSim, tại menu File chọn Change Directory, tại hộp thoại Change directory chọn đường dẫn tới thư mục làm việc

D:\DLD_Labs\Basic_Labs\adder4 (Hình 1.3)

Bước 2 Tạo thư viện work trong ModelSim

Trang 5

27

Gõ lệnh sau vào cửa sổ Transcript của ModelSim:

vlib work

Hình 1.4 Tạo thư viện work trên cửa sổ Transcript

Bước 3 Biên dịch các file mã nguồn

Gõ các lệnh sau vào cửa sổ Transcript

vcom full_adder.vhd

vcom adder4.vhd

Hình 1.5 Biên dịch các file mã nguồn VHDL

Khi trình biên dịch phát hiện ra lỗi về mặt cú pháp thì nó sẽ thông báo

vị trí và nội dung gây ra lỗi trong mã nguồn Nếu như mã nguồn của thiết kế không có lỗi thì biên dịch xong sẽ cho ra kết quả như hình trên

Bước 4 Kiểm tra nhanh thiết kế

Trang 6

28

Tiến hành kiểm tra nhanh thiết kê bằng cách đưa vào đầu vào của DUT các giá trị cố định và kiểm tra trực tiếp kết quả đầu ra Kiểm tra nhanh cho phép phát hiện và sửa những lỗi về mặt chức năng đơn giản trước khi bước vào

kiểm tra với số lượng lớn tổ hợp giá trị đầu vào

Để kiểm tra nhanh bộ cộng thiết kế ở trên tạo thêm một file adder4_test.vhd trong thư mục làm việc với nội dung như sau:

- adder4_test

-

-library IEEE;

use IEEE.STD_LOGIC_1164 ALL ;

-entity adder4_test is

end adder4_test;

-architecture test of adder4_test is

component adder4 is

port (A : in std_logic_vector(3 downto );

B : in std_logic_vector(3 downto );

CI : in std_logic;

SUM: out std_logic_vector(3 downto );

CO : out std_logic);

end component ;

signal A : std_logic_vector(3 downto ):= "0101";

signal B : std_logic_vector(3 downto ):= "0110";

signal Ci : std_logic := ' 1 ;

signal Sum: std_logic_vector(3 downto );

signal Co : std_logic;

begin

DUT: component adder4

port map (A => A, B => B, CI => CI,

Sum => Sum, Co => Co);

end test;

-Mã nguồn kiểm tra thiết kế adder4_test là thiết kế không nhất thiết chứa bất cứ cổng vào ra nào ở phần khai báo Kiến trúc của nó gồm hai phần, phần khai báo tín hiệu sẽ khai báo các tín hiệu đầu vào của adder4; đối với các tín hiệu đầu ra để trống Phần hai là khai báo sử dụng adder4 như một khối con có tên là DUT và gán các cổng vào ra tương ứng như trên

Bước 5 Tiến hành biên dịch file mã nguồn

Biên dịch file adder4_test.vhd bằng lệnh sau trong cửa sổ Transcript: vcom adder4_test.vhd

Bước 6 Khởi tạo mô phỏng thiết kế

Tiến hành khởi tạo mô phỏng thiết kế bằng lệnh:

Trang 7

29

vsim adder4_test

Hình 1.6 Khởi tạo mô phỏng thiết kế Bước 7 Bổ sung các tín hiệu vào cửa sổ wave form để quan sát, để

thực hiện gõ lệnh sau vào cửa sổ Transcript

add wave sim:/adder4_test/*

Lệnh trên sẽ hiển thị toàn bộ các tín hiệu tương ứng trong component adder4 lên giản đồ sóng Sau khi thực hiện các bước trên có thể tiến hành chạy mô phỏng bằng nút công cụ Run trên thanh công cụ cửa sổ giản đồ sóng:

Bước 8 Chạy mô phỏng và quan sát kết quả trên waveform bằng cách

gõ lệnh sau vào cửa sổ Transcript

run 1000 ns

Khi gặp lệnh này chương trình sẽ chạy mô phỏng trong thời gian 1000 ns Kết quả mô phỏng được thể hiện trên hình 1.7

Quan sát trên hình 1.7 và so sánh với mã nguồn của adder4_testbench

có thể thấy với a = “0101” = 5, b = “0110” = 6, CI = ‘1’ thì cho ra kết quả sum = “1100” = 12

Bước 9 Để có thể dùng lại nhiều lần mà không phải gõ lại mã phục vụ

mô phỏng, tạo file run.do lưu vào trong thư mục làm việc với nội dung sau

quit -sim

vlib work

vcom full_adder.vhd

vcom adder4.vhd

vcom adder4_test.vhd

vsim adder4_test

add wave sim:/adder4_test/*

run 1000 ns

Trang 8

30

Dòng thứ nhất để kết thúc bất kỳ mô phỏng nào đang thực thi nếu nó tồn tại, dòng thứ hai tạo thư viện work nếu nó chưa tồn tại, tiếp đến là các lệnh vcom để biên dịch các file mã nguồn, lệnh vsim để tiến hành mô phỏng, sau đó là các lệnh bổ sung tín hiệu cần theo dõi vào giản đồ sóng Lệnh cuối run 1000 ns dùng để chạy mô phỏng trong thời gian đã được ấn định

Hình 1.7 Kết quả mô phỏng adder4 trên giản đồ sóng ModelSim Bước 10 Để biên dịch và chạy lại mô phỏng một cách tự động, tiến hành

gõ lệnh như sau trong cửa sổ Transcript của ModelSim

do run.do

Lưu ý rằng việc tạo tệp kịch bản mô phỏng (script) này sẽ rất tiện lợi cho các thiết kế lớn và phức tạp Trên thực tế người lập trình có thể phải thực hiện

mô phỏng nhiều lần trước khi có thể kết luận về tính đúng đắn của thiết kế, script run.do giúp quá trình mô phỏng được thực thi nhanh chóng, chính xác

mà không phải lặp lại các thao tác lệnh như trong các bước từ 2-9

Nội dung 3: Thực hành mô phỏng bộ cộng 4-bit trên Xilinx ISE

Bước 1 Khởi động Xilinx ISE

Tại menu File chọn New Project, tại của sổ thiết lập thuộc tính chọn đường dẫn tới thư mục làm việc D:\DLD_Labs\Basic_Labs\adder4\ chứa các

tệp mã nguồn vừa tạo adder4.vhd, full_adder.vhd

Đặt tên Project là project_ise_adder4 (học viên chú ý rằng tên này có thể thay đổi tùy biến)

Trang 9

31

Hình 1.8 Tạo New Project trên phần mềm Xilinx ISE

Hình 1.9 Đặt tham số chip FPGA trên phần mềm Xilinx ISE

Trang 10

32

Chọn các thuộc tính mô tả mạch FPGA và nhấn Next, tiếp đó là Finish, kết thúc việc tạo Project (Hình 1.9)

Lưu ý, tùy vào mạch cụ thể mà sẽ chọn cấu hình FPGA tương ứng gồm: Family, Device, Package and Speed Đối với mạch thí nghiệm FPGA-VXL-2017 của Bộ môn, học viên chọn các thuộc tính như sau: Family - Spartan6, Device - XC6LSX25, Package - FTG256, Speed - -3

Bước 2 Bổ sung mã nguồn

Tiến hành thêm tất cả các tệp mã nguồn vào Project đã tạo, bằng cách nhấn chuột phải vào biểu tượng Project đã tạo và chọn Add Source:

Hình 1.10 Bổ sung file mã nguồn VHDL trên phần mềm Xilinx ISE

Click chuột để chọn các tệp nguồn, chọn thuộc tính “Simulation” nhằm chỉ ra tệp này chỉ để mô phỏng mà không tạo ra thiết kế trên mạch

Hình 1.11 Chọn thuộc tính Simulation trên phần mềm Xilinx ISE

Trang 11

33

Bước 3 Chọn chế độ làm việc

Trên cửa sổ thiết kế (Design) của Xilinx ISE có hai nút tùy chọn: Implementation dùng để mô phỏng thực thi và Simulation dùng để mô phỏng logic, nhấn chọn Simulation

Hình 1.12 Cửa sổ Simulation trên phần mềm Xilinx ISE

Bước 4 Kiểm tra nhanh thiết kế

Hình 1.13 Kiểm tra lỗi mã nguồn trên phần mềm Xilinx ISE

Tại mục Hierarchy, click chuột chọn phần kiểm tra nhanh (add4_test), tại mục Process ở cửa sổ bên dưới, click chọn Behavioral Check Syntax để kiểm tra thiết kế có lỗi hay không, nếu có lỗi cú pháp chương trình, tiến hành

sửa, chọn lại Behavioral Check Syntax đến khi chương trình báo không còn lỗi

Bước 5 Mô phỏng và quan sát trên giản đồ sóng

Tại mục Process, click đúp chuột vào Simulate Behavioral Model nằm bên dưới mục Behavioral Check Syntax, thu được kết quả trên giản đồ sóng

Trang 12

34

Hình 1.14 Giản đồ sóng mô phỏng trên phần mềm Xilinx ISE

Nội dung 4: Thực hành mô phỏng bộ cộng 4-bit trên Xilinx Vivado

Bước 1 Tạo Project mới

Hình 1.15 Khởi tạo Project mới trên phần mềm Xilinx Vivado

Khởi động phần mềm Xilinx Vivado, tại cửa sổ Quick Start nhấn vào biểu tượng “Create New Project”, sẽ xuất hiện hộp thoại ở bên cạnh, nhấn Next để tiến hành các bước tiếp theo trong quá trình tạo Project mới

Bước 2 Tạo đường dẫn cho và đặt tên cho Project

Trang 13

35

Hình 1.16 Tạo đường dẫn và đặt tên cho Project trên Vivado

Tại thư mục adder4 đã tạo ra và chứa code VHDL của bộ cộng 4-bit tạo một Project mới và đặt tên là project_vidado_adder4 nhằm gợi nhớ Project này được tạo ra trên Xilinx Vivado

Bước 3 Chọn kiểu Project cần tạo

Hình 1.17 Chọn kiểu cho Project mới là RTL

Trang 14

36

Bước 4 Bổ sung tệp mã nguồn VHDL vào Project mới

Hình 1.18 Thực hiện lệnh bổ sung mã nguồn vào Project trên Vivado

Nhấn chuột vào nút “Add Files” như trên hình 1.18, khi đó sẽ xuất hiện một cửa sổ mới cho phép tùy chọn bổ sung các tệp mã nguồn vào Project của

bộ cộng 4-bit vừa tạo trên Vivado

Hình 1.19 Lựa chọn các file mã nguồn để bổ sung vào Project

Trang 15

37

Hình 1.20 Các file mã nguồn được bổ sung vào Project mới trên Vivado

Tiếp đó, nhấn Next liên tiếp để bỏ qua hai tùy chọn Add Existing IP

và Add Constraints, ở những Project đơn giản chưa cần dùng tới hai tùy chọn này

Bước 5 Chọn cấu hình chip FPGA dùng thực thi trên mạch

Hình 1.21 Tùy chọn cấu hình chip FPGA dùng để thực thi

Sau hai lần bỏ qua các cửa sổ bổ sung thêm tệp nguồn, cửa sổ cuối Default Part sẽ xuất hiện phục vụ cho việc lựa chọn cấu hình chip FPGA dùng để thực thi Khác với ISE, trong Vivado bước này thực hiện sau cùng

Trang 16

38

Việc đặt các tham số cũng tùy thuộc vào mạch FPGA cụ thể, ví dụ trong trường hợp này có thể chọn Artix 7, XC7A100T, FTG256

Sau khi Project mới được tạo ra, có thể quan sát các thông tin về Project này trong bảng tổng hợp dưới đây sau khi nhấn nút lệnh Next trên của sổ Default Part ở hình bên trên

Hình 1.22 Kết quả tổng hợp các thông tin liên quan đến Project mới Bước 6 Tiến hành chạy mô phỏng trên Vivado cho bộ cộng 4-bit

Hình 1.23 Thực hiện mô phỏng bộ cộng 4-bit trên Vivado

Trang 17

39

Trên cửa sổ Project Manager ở mép trái của giao diện phần mềm Xilinx Vivado (Hình 1.23) là chuỗi các lệnh được sắp xếp theo trình tự thứ bậc

từ trên xuống dưới tương ứng với quá trình từ mô phỏng logic cho đối tượng cho tới thực thi trên mạch FPGA

Hình 1.24 Kết quả mô phỏng bộ cộng 4-bit trên phần mềm Vivado

Trên cửa sổ Sources nhấn chọn đối tượng cần mô phỏng (adder4_test), tiếp đó tại cửa sổ Project Manager ở mép trái giao diện Vivado nhấn chuột phải vào tùy chọn “Run Simulation”, tiếp đó nhấn vào lệnh “Run Behavioral Simulation” trên menu xổ xuống, quá trình mô phỏng bộ cộng 4-bit sẽ bắt đầu được tiến hành trên Vivado Kết quả mô phỏng trên giản đồ sóng của

phần mềm Vivado được thể hiện trên hình 1.24

Nội dung 5: Bài tập phát triển thêm

Bài 1 Thiết kế khối cộng 8 bit bằng cách ghép nối tiếp hai khối cộng 4 bit Bài 2 Thiết kế khối biến đổi từ mã nhị phân sang thermometer code

cho số nhị phân 3 bit, ví dụ chuỗi đầu ra có 8 bit hiển thị theo thermometer code với số lượng bit ‘1’ từ bên phải sang quy định bởi mã nhị phân đầu vào

Bài 3 Thiết kế khối tính toán số lượng bit 1 trong một chuỗi 8 bit nhị

phân, đầu ra là một số 4 bit nhị phân biểu diễn không dấu của số lượng bit 1

Ví dụ: Đầu vào là 11011101, đầu ra là 0110

Trang 18

40

Bài 4 Thiết kế bộ cộng hai số mã NBCD, đầu ra là một số dạng mã

NBCD có hai chữ số thể hiện bằng 8 bit như ví dụ sau

Ví dụ: A+B = CD, A = 6(0110), B = 9(1001); 6+9 = 15, nên C = 1(0001) D = 5(0101), kết quả 8 bit CD = 0001 0101

Bài 5 Thiết kế khối cộng, trừ sử dụng toán tử, tín hiệu SUB = 1 thực hiện

phép trừ và SUB = 0 thực hiện phép cộng

A

Sum

B Cin

Σ

Cout

3

N bit

3

B

s_B

Sub Cin A

3

ADDER/SUBTRACTOR

c) Tổng hợp, xử lý và đánh giá kết quả thí nghiệm

Qua buổi thí nghiệm, giáo viên sẽ tiến hành đánh giá sơ bộ về kết quả thí nghiệm và ý thức khi tham gia thí nghiệm của các học viên Kết hợp với phần báo cáo kết quả thí nghiệm, giáo viên sẽ tiến hành chấm điểm bài thí nghiệm đối với từng học viên

1.5 Báo cáo thí nghiệm

a) Hướng dẫn viết báo cáo thí nghiệm

Sau mỗi buổi thí nghiệm, học viên sẽ viết báo cáo thí nghiệm theo mẫu, và nộp bản báo cáo vào đầu buổi thí nghiệm tiếp theo cho giáo viên

b) Mẫu báo cáo thí nghiệm

Mẫu báo cáo ở Phụ lục của giáo trình

Ngày đăng: 14/08/2020, 14:56

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w