You are on page 1of 8

Bài thực hành 1: Thực hành với khối ILA, VIO

Code bộ đếm 4 bit


Ta sẽ sử dụng 2 khối ILA và VIO để kiểm tra tính đúng đắn của đoạn code bộ đếm 4 bit
khi nó được nạp xuống mạch thật.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;

entity countUpDown4bit is
generic(N: integer := 5e7);
Port ( reset: in STD_LOGIC;
led : out STD_LOGIC_VECTOR (3 downto 0);
clk : in STD_LOGIC);
end countUpDown4bit;

architecture Behavioral of countUpDown4bit is


signal cnt_r, cnt_n: std_logic_vector(3 downto 0);
begin
-- current state
process(clk, reset)
begin
if rising_edge(clk) then
if (reset = '0') then
cnt_r <= "0000";
else
cnt_r <= cnt_n;
end if;
end if;
end process;

-- next state
cnt_n <= cnt_r + 1;

led <= cnt_r;


end Behavioral;
Tạo block design

Sơ đồ khối

Khối VIO
Ta thiết lập thông số của khối VIO như sau:

General Options
PROBE_IN Ports
PROBE_OUT Ports

Sau đó ta nói probe_in0 với led và probe_out0 tới chân reset của bộ đếm 4 bit

Khối ILA
Ta đặt các thông số của khối ILA như sau:
General Options
Probe Ports

Sau đó ta nói probe0 với led và probe1 tới chân reset của bộ đếm 4 bit

Một số khối khác


Ngoài các khối trên ta cũng cần thêm khối Clocking Wizard

Clocking Wizard

Để có thể hiển thị led trên mạch thật ta có thể tạo external port ở led của bộ đếm 4 bit và
gán các chân khi synthesis:
Gán các chân của mạch khi synthesis

Program Device

Tải file bitstream và Debug probes xuống mạch thật

Các tín hiệu được theo dõi và điều khiển bởi khối VIO khi tín hiệu reset bằng 1
Các tín hiệu được theo dõi và điều khiển bởi khối VIO khi tín hiệu reset bằng 0

Dạng sóng của các tín hiệu khi trigger sườn lên của tín hiệu reset

You might also like