trong một phần của thí nghiệm, chúng ta sẽ tạo 1 đầu vào kích đơn giản bằng cách sử dụng cả 2 kiểu tuần tự và song song... Mục TiêuThí nghiệm bao gồm 3 bước chính: bạn sẽ tạo một chươn
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
Lớp D7-DTVT1
BÀI THUYẾT TRÌNH MÔN
ĐiỆN TỬ SỐ 2
Đề Tài
VHDL Simulation and RTL Verification Lab
Nhóm 3:
LÊ BÁ DUY
TRẦN TRUNG ĐỨC
NGUYỄN SỸ DUẨN NGUYỄN THỊ HÀ ĐƯỜNG GIA ĐỨC NGUYỄN TRỌNG HIẾU TRẦN THANH HẢI Giáo viên hướng dẫn: Hoàng Văn Đông
Trang 2VHDL Simulation and RTL Verification Lab
Giới Thiệu
1
Mục Tiêu
2
Cách Thức
3
Kết Luận
4
Trang 3Giới Thiệu
AND_OR module hoàn thành trong Lab 1 trong một phần của thí
nghiệm, chúng ta sẽ tạo 1 đầu vào kích đơn giản bằng cách sử dụng
cả 2 kiểu tuần tự và song song.
Trang 4Mục Tiêu
được tao ra trong bài tập trước.
Trang 5Cách Thức
hoàn chỉnh mô tả thực thể AND_OR.
Figure 7b-1 Sơ đồ lớp trên thí nghiệm với AND_OR như UUT
Trang 6Mục Tiêu
Thí nghiệm bao gồm 3 bước chính: bạn sẽ tạo một chương trình thí nghiệm với VHDL testbench generation wizard trong phần mềm ISE™ tạo đầu vào kích tuần tự và song song ; và, cuối cùng, kiểm tra lại cấu trúc logic bằng cách chạy simulation, kiểm tra xung, và kiểm các chức năng dự định.
Trang 7Sơ Đồ Chung Cho Thí Nghiệm
Bước 1:
Tạo ra một Testbench
Các Bước Tiến Hành
Bước 3 : Xác minh tính năng lozic
Bước 2 : Tạo ra một đầu vào đơn giản Stimulus
Trang 8Bước 1:Tạo một Testbench
cửa sổ hiện tại My_Class_Labs project within the ISE software ở thư
mục R:\training\vhdl\labs directory.
1.Chọn Start → Programs → Xilinx ISE 9.1i → Project Navigator để thực hiện Project Navigator
2.Theo mặc định, phần mềm ISE nên bắt đầu với dự án mở mới như dự án hiện tại
3.Nếu không, chọn File → Open Project → My_Class_Labs
Trang 9Bước 1:Tạo một Testbench
3 Chọn projects-> new source
4 Trong hộp thoại của new source, chọn VHDL Test Bench rồi nhập AND_OR_TB trong ô file name Loại tệp này là bao hàm, vì thế ko đc phân loại “.vhd”
Trang 10Bước 1:Tạo một Testbench
5 Click vào “Next”
Hộp thoại tiếp theo nhắc nhở bạn chọn mô-đun để kết hợp với tập tin “testbench” Sự kết hợp này là 1 phần của khả năng quản lý
tự động trong phần mềm ISE.
6 Chọn top-level của mô-đun And_OR Click Next và click Finish trong khung hộp thoại sơ lược
Tại thời điểm này, bạn phải tạo top-level “testbench” sử dụng 1 mẫu trong phần mềm ISE tự động trong phần cấu trúc của
“Testbench” Nếu bạn kiểm tra tệp, bạn sẽ thấy rằng cái mẫu sẽ chứa:
+ Tờ khai thành phần: Dựa trên Unit Under Test (UUT) cái mà bạn chọn
+ Tờ khai tín hiệu tại mức cao: Sử dụng cùng tên như là cổng trên mô-đun UUT
+ Thuyết minh và bản đồ cổng: Kết nối thành phần khai báo và tín hiệu
+ Vỏ quá trình kích thích đầu vào: Điểm khởi đầu thuận lợi cho kích thích tuần tự
Trang 11Bước 2:Tạo ra một đầu vào đơn giản Stimulus
Thực tế tạo ra các kích thích đầu vào Bạn sẽ sử dụng các cổng và đồng thời kích thích đầu vào một
cách liên tục
Cụ thể, bạn sẽ xử lý INP ( 3 downto 0) như 2 phần riêng biệt bằng cách sử dụng các kí hiệu VHDL Bạn
sẽ kích thích đầu vào bằng cách sử dụng các cổng một phần của mạch và báo cáo một cách tuần tự
Trong cấu trúc,sử dụng kí hiệu sau:
INP ( 3 downto 2 ) sử dụng báo cáo đồng thời INP ( 1 downto 0 ) sử dụng câu lênh tuần tự
Tạo ra kích thích đầu vào riêng biêt INP ( 3 downto 2) và INP ( 1
downto 0)
Cho ví dụ về việc tạo ra một cách đồng thời và liên tục, tham khảo trang 6-24trong mudul “giới thiệu Testbenches”
Lưu ý rằng khi gán cho mạch, std_logic_vector, ví dụ, các kí hiệu được chứa trong dấu ngoặc kép Ví
dụ: INP( 3 downto 2 ) <= “00”
Trang 12Bước 3:Xác minh tính năng lozic
Chạy các mô phỏng, kiểm tra các dạng sóng và kiểm tra chức năng.
1.Sau khi bạn đã nhập mã cho các gói kích thích đầu vào, chọn AND_OR_TB.vhd trong nguồn cho cửa sổ
2.Nếu cần thiết, hãy chọn mô phỏng hành vi từ nguồn cho danh sách thả xuống T
Trong cửa sổ quá trình, mở rộng Xilinx ISE Simulator và nhấp đúp vào Kiểm tra cú pháp (Hình 7b-3)
Hình 7b-3 Nguồn và quy trình của của sổ chính
Sửa chữa các lỗi trước khi tiếp tục Yêu cầu giúp đỡ từ người hướng dẫn nếu cần thiết
Trong cửa sổ quá trình, kích đúp vào Mô phỏng hành vi mẫu
Trang 13Bước 3: Xác minh tính năng lozic
Mô phỏng hành vi lựa chọn mô hình thực hiện một kịch bản trong phần mềm ISE ™ mà thực hiện tất cả các bước cần thiết để mô phỏng Thời gian chạy mặc định là 1.000 ns
ISE Simulator báo cáo bất kỳ lỗi nào được phát hiện trong testbench Lưu ý rằng các công cụ XST là để tổng hợp và không biên dịch các tập tin mô phỏng
Giả sử không có lỗi, kết quả mô phỏng của bạn sẽ trông tương tự như hình 7b-4.Your dạng sóng thực tế sẽ phản ánh các giá trị đầu vào mà bạn đã chọn và khoảng thời gian chính xác được áp dụng.
Hình 7b-4 Kết quả mô phỏng
Trang 14Bước 3: Xác minh tính năng lozic
+Quan trọng: Lưu ý rằng khi ISE Simulator được kích hoạt, ngoài quá trình Xem cửa sổ ở phía dưới bên trái, đó cũng là một cửa sổ SIM Hệ thống cấp bậc View
+Đây sẽ là đặc biệt quan trọng trong các bài tập trong tương lai khi bạn sẽ cần phải bao gồm các tín hiệu từ các mô-đun cấp thấp hơn (UUT) trong cửa sổ dạng sóng Tính năng này cho phép bạn điều hướng đến bất kỳ khu vực của thiết kế và chọn đối tượng để xem trong cửa sổ dạng sóng
+Bạn có thể kéo và thả các đối tượng vào cửa sổ dạng sóng Sau đó bạn có thể khởi động lại và chạy lại mô phỏng để tất cả các giá trị tín hiệu được hiển thị
Những lệnh có thể được thực hiện như thể hiện trong hình 7b-5.
Chạy Mặc định Thời gian dài
Hình 7b-5 ISE Khởi động lại mô phỏng và chạy tùy chọn
Trang 15Kết Luận
Trong bài tập này, bạn tạo ra testbench đầu tiên của bạn đối với khóa học này, được sử dụng để xác minh các chức năng của các mô-đun AND_OR Testbench này là rất cơ bản trong tự nhiên, nhưng các khái niệm áp dụng ở đây là như nhau cho tất cả các xác minh VHDL Trong các bài tập tiếp theo, bạn sẽ thêm nhiều tính năng và chức năng để testbenches của bạn
Bạn lại thừa hưởng các tính năng trong phần mềm ISE ™ để đơn giản hóa quá trình tạo ra các testbench trên cấp độ Cuối cùng, bạn chạy một mô phỏng bằng cách sử dụng các công cụ Xilinx ISE Simulator.
Trang 16Answers
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity AND_OR_TB_VHD is
end AND_OR_TB_VHD;
architecture TEST of AND_OR_TB_VHD is
component AND_OR port(
INP : in std_logic_vector(3 downto 0);
Z : out std_logic );
end component;
signal INP : std_logic_vector(3 downto 0);
signal Z : std_logic;
begin
uut: AND_OR port map(
INP => INP,
OUT1 => OUT1 );
INP(3 downto 2) <= "00", "01" after 200 ns, "10" after 400 ns, "11" after 600 ns;
TB : process
begin
INP( 1downto 0) <= "00";
wait for 75 ns ;
INP( 1downto 0) <= "01";
wait for 75 ns ;
INP( 1downto 0) <= "10";
wait for 75 ns ;
INP( 1downto 0) <= "11";
wait for 75 ns ;
end process;
end TEST ;
Trang 17Nhóm 2
Cảm ơm thầy và các bạn đã chú ý theo dõi