first commit
This commit is contained in:
commit
4ca9947ed6
|
@ -0,0 +1,68 @@
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
-- Company:
|
||||||
|
-- Engineer:
|
||||||
|
--
|
||||||
|
-- Create Date: 10/13/2023 08:56:30 AM
|
||||||
|
-- Design Name:
|
||||||
|
-- Module Name: blink - Behavioral
|
||||||
|
-- Project Name:
|
||||||
|
-- Target Devices:
|
||||||
|
-- Tool Versions:
|
||||||
|
-- Description:
|
||||||
|
--
|
||||||
|
-- Dependencies:
|
||||||
|
--
|
||||||
|
-- Revision:
|
||||||
|
-- Revision 0.01 - File Created
|
||||||
|
-- Additional Comments:
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if using
|
||||||
|
-- arithmetic functions with Signed or Unsigned values
|
||||||
|
use IEEE.NUMERIC_STD.ALL;
|
||||||
|
use IEEE.STD_LOGIC_UNSIGNED.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if instantiating
|
||||||
|
-- any Xilinx leaf cells in this code.
|
||||||
|
--library UNISIM;
|
||||||
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
|
entity blink is
|
||||||
|
Port ( clk : in STD_LOGIC; -- CLK_125_N or P (for now no clock, just press button and change led state)?
|
||||||
|
rst : in STD_LOGIC; -- reset, active low, where is this?
|
||||||
|
led7 : out STD_LOGIC); -- TODO: maybe set all others low to turn them off?
|
||||||
|
end blink;
|
||||||
|
|
||||||
|
architecture Behavioral of blink is
|
||||||
|
type state_type is (s00, s01);
|
||||||
|
signal ps, ns : state_type;
|
||||||
|
begin
|
||||||
|
-- GPIO_LED_7 <= GPIO_SW_C;
|
||||||
|
fsm: process (ps)
|
||||||
|
begin
|
||||||
|
case ps is
|
||||||
|
when s00 =>
|
||||||
|
ns <= s01;
|
||||||
|
led7 <= '1';
|
||||||
|
when s01 =>
|
||||||
|
ns <= s00;
|
||||||
|
led7 <= '0';
|
||||||
|
when others =>
|
||||||
|
ns <= s00;
|
||||||
|
led7 <= '0';
|
||||||
|
end case;
|
||||||
|
end process;
|
||||||
|
process (clk, rst)
|
||||||
|
begin
|
||||||
|
if rst = '1' then
|
||||||
|
ps <= s00;
|
||||||
|
else
|
||||||
|
ps <= ns;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
end Behavioral;
|
|
@ -0,0 +1,104 @@
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
-- Company:
|
||||||
|
-- Engineer:
|
||||||
|
--
|
||||||
|
-- Create Date: 10/14/2023 12:29:16 PM
|
||||||
|
-- Design Name:
|
||||||
|
-- Module Name: blink_tb - Behavioral
|
||||||
|
-- Project Name:
|
||||||
|
-- Target Devices:
|
||||||
|
-- Tool Versions:
|
||||||
|
-- Description:
|
||||||
|
--
|
||||||
|
-- Dependencies:
|
||||||
|
--
|
||||||
|
-- Revision:
|
||||||
|
-- Revision 0.01 - File Created
|
||||||
|
-- Additional Comments:
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if using
|
||||||
|
-- arithmetic functions with Signed or Unsigned values
|
||||||
|
--use IEEE.NUMERIC_STD.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if instantiating
|
||||||
|
-- any Xilinx leaf cells in this code.
|
||||||
|
--library UNISIM;
|
||||||
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
|
entity blink_tb is
|
||||||
|
-- Port ( CLK_125_N : in STD_LOGIC;
|
||||||
|
-- GPIO_SW_C : in STD_LOGIC;
|
||||||
|
-- GPIO_LED_7 : out STD_LOGIC);
|
||||||
|
end blink_tb;
|
||||||
|
|
||||||
|
architecture test of blink_tb is
|
||||||
|
signal CLK_125_N : STD_LOGIC := '0';
|
||||||
|
signal GPIO_SW_C : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_7 : STD_LOGIC := '0';
|
||||||
|
begin
|
||||||
|
dut: entity work.blink
|
||||||
|
port map(
|
||||||
|
CLK_125_N => CLK_125_N,
|
||||||
|
GPIO_SW_C => GPIO_SW_C,
|
||||||
|
GPIO_LED_7 => GPIO_LED_7
|
||||||
|
);
|
||||||
|
CLK_125_N <= not CLK_125_N after 1 ps;
|
||||||
|
|
||||||
|
|
||||||
|
-- Stimulus process
|
||||||
|
process
|
||||||
|
begin
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
|
||||||
|
GPIO_SW_C <= '1';
|
||||||
|
wait for 10 ps;
|
||||||
|
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
|
||||||
|
GPIO_SW_C <= '0';
|
||||||
|
|
||||||
|
wait for 1 ns;
|
||||||
|
|
||||||
|
wait;
|
||||||
|
end process;
|
||||||
|
-- process
|
||||||
|
-- begin
|
||||||
|
-- GPIO_SW_C <= '0';
|
||||||
|
-- wait for 10 ns;
|
||||||
|
-- GPIO_SW_C <= '1';
|
||||||
|
-- wait for 10 ns;
|
||||||
|
-- end process;
|
||||||
|
|
||||||
|
end test;
|
|
@ -0,0 +1,24 @@
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
use IEEE.STD_LOGIC_ARITH.ALL;
|
||||||
|
use IEEE.STD_LOGIC_UNSIGNED.ALL;
|
||||||
|
|
||||||
|
entity clock_divider is
|
||||||
|
Port (
|
||||||
|
reset : in STD_LOGIC;
|
||||||
|
clock : in STD_LOGIC;
|
||||||
|
divided_clocks : out STD_LOGIC_VECTOR(31 downto 0)
|
||||||
|
);
|
||||||
|
end entity clock_divider;
|
||||||
|
|
||||||
|
architecture Behavioral of clock_divider is
|
||||||
|
signal div_clks : STD_LOGIC_VECTOR(31 downto 0) := (others => '0');
|
||||||
|
begin
|
||||||
|
process (clock)
|
||||||
|
begin
|
||||||
|
if rising_edge(clock) then
|
||||||
|
div_clks <= div_clks + 1;
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
divided_clocks <= div_clks;
|
||||||
|
end architecture Behavioral;
|
|
@ -0,0 +1,124 @@
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
-- File : clkreset.vhd
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
-- Description : Wrapper for clock PLL and reset logic
|
||||||
|
--
|
||||||
|
-- External 'p_reset' input resets the PLL immediately and sets the 'reset'
|
||||||
|
-- active high to the internal FPGA logic.
|
||||||
|
-- When the reset goes inactive the PLL will try to generate the requested
|
||||||
|
-- output freq clock 'clk_i' for the FPGA internal logic from the 'p_clk' input.
|
||||||
|
-- Once the PLL output clock is stable the PLL sets the 'pll_locked' output high.
|
||||||
|
-- A counter then increments to 255 and then the 'reset' output is set low
|
||||||
|
-- to allow the FPGA logic to run.
|
||||||
|
--
|
||||||
|
-- *** Check p_reset_n polarity, design assumes active low ***
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
library ieee;
|
||||||
|
use ieee.std_logic_1164.all;
|
||||||
|
use ieee.numeric_std.all;
|
||||||
|
|
||||||
|
|
||||||
|
entity clkreset is
|
||||||
|
port(
|
||||||
|
-- Reset and clock from pads
|
||||||
|
p_reset : in std_logic; -- From RESET input pad
|
||||||
|
p_clk_n : in std_logic; -- From CLOCK input pad, N
|
||||||
|
p_clk_p : in std_logic; -- From CLOCK input pad, P
|
||||||
|
|
||||||
|
-- Reset and clock outputs to all internal logic
|
||||||
|
clk : out std_logic;
|
||||||
|
lock : out std_logic;
|
||||||
|
reset : out std_logic
|
||||||
|
);
|
||||||
|
end clkreset;
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
-- Structural architecture instantiates a vendor IP block clock tile.
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
architecture struct of clkreset is
|
||||||
|
|
||||||
|
signal pll_locked : std_logic;
|
||||||
|
signal pll_locked_d1 : std_logic := '0';
|
||||||
|
signal clk_i : std_logic;
|
||||||
|
signal cnt_reset : unsigned(7 downto 0) := X"00";
|
||||||
|
signal reset_pll : std_logic;
|
||||||
|
|
||||||
|
-- Clock generator IP. Use MMCM or PLL
|
||||||
|
-- component clkpll
|
||||||
|
-- port (
|
||||||
|
-- refclk : in std_logic := '0'; -- refclk.clk
|
||||||
|
-- reset : in std_logic := '0'; -- reset.reset
|
||||||
|
-- outclk_0 : out std_logic; -- outclk0.clk
|
||||||
|
-- locked : out std_logic -- locked.export
|
||||||
|
-- );
|
||||||
|
-- end component;
|
||||||
|
component clk_wiz_0
|
||||||
|
port (-- Clock in ports
|
||||||
|
-- Clock out ports
|
||||||
|
outclk_0 : out std_logic;
|
||||||
|
-- Status and control signals
|
||||||
|
reset : in std_logic;
|
||||||
|
locked : out std_logic;
|
||||||
|
clk_in1_p : in std_logic; -- refclk, P
|
||||||
|
clk_in1_n : in std_logic -- refclk, N
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
begin
|
||||||
|
|
||||||
|
clk <= clk_i;
|
||||||
|
lock <= pll_locked_d1;
|
||||||
|
reset_pll <= p_reset;
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
-- Clock generator. 100 MHz clock from XX MHz board clock input
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
-- u_clkpll : clkpll
|
||||||
|
-- port map(
|
||||||
|
-- refclk => p_clk , -- in std_logic := '0'; -- refclk.clk
|
||||||
|
-- reset => reset_pll , -- in std_logic := '0'; -- reset.reset
|
||||||
|
-- outclk_0 => clk_i , -- out std_logic; -- outclk0.clk
|
||||||
|
-- locked => pll_locked -- out std_logic -- locked.export
|
||||||
|
-- );
|
||||||
|
u_clkpll : clk_wiz_0
|
||||||
|
port map (
|
||||||
|
-- Clock out ports
|
||||||
|
outclk_0 => clk_i, -- out
|
||||||
|
-- Status and control signals
|
||||||
|
reset => reset_pll, -- in
|
||||||
|
locked => pll_locked, -- out
|
||||||
|
-- Clock in ports
|
||||||
|
clk_in1_p => p_clk_p, -- in
|
||||||
|
clk_in1_n => p_clk_n -- in
|
||||||
|
);
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Keep main logic reset until PLL locked for 255 clock cycles
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
pr_reset : process (p_reset, pll_locked, clk_i)
|
||||||
|
begin
|
||||||
|
if (p_reset = '1' or pll_locked = '0') then
|
||||||
|
reset <= '1';
|
||||||
|
pll_locked_d1 <= '0';
|
||||||
|
cnt_reset <= X"00";
|
||||||
|
|
||||||
|
elsif rising_edge(clk_i) then
|
||||||
|
|
||||||
|
pll_locked_d1 <= pll_locked;
|
||||||
|
|
||||||
|
if (pll_locked_d1 = '1' and cnt_reset < X"FF") then
|
||||||
|
cnt_reset <= cnt_reset + 1;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
if (cnt_reset < X"FF") then
|
||||||
|
reset <= '1';
|
||||||
|
else
|
||||||
|
reset <= '0';
|
||||||
|
end if;
|
||||||
|
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
end struct;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
vlib work
|
||||||
|
vcom *.vhd
|
||||||
|
vsim -voptargs="+acc" -t 1ps -lib work top_tb
|
||||||
|
do wave.do
|
||||||
|
view wave
|
||||||
|
view structure
|
||||||
|
view signals
|
||||||
|
run -all
|
|
@ -0,0 +1,76 @@
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
-- Company:
|
||||||
|
-- Engineer:
|
||||||
|
--
|
||||||
|
-- Create Date: 10/13/2023 08:56:30 AM
|
||||||
|
-- Design Name:
|
||||||
|
-- Module Name: blink - Behavioral
|
||||||
|
-- Project Name:
|
||||||
|
-- Target Devices:
|
||||||
|
-- Tool Versions:
|
||||||
|
-- Description:
|
||||||
|
--
|
||||||
|
-- Dependencies:
|
||||||
|
--
|
||||||
|
-- Revision:
|
||||||
|
-- Revision 0.01 - File Created
|
||||||
|
-- Additional Comments:
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if using
|
||||||
|
-- arithmetic functions with Signed or Unsigned values
|
||||||
|
use IEEE.NUMERIC_STD.ALL;
|
||||||
|
use IEEE.STD_LOGIC_UNSIGNED.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if instantiating
|
||||||
|
-- any Xilinx leaf cells in this code.
|
||||||
|
--library UNISIM;
|
||||||
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
|
entity top is
|
||||||
|
Port ( CLK_125_N : in STD_LOGIC; -- CLK_125_N or P (for now no clock, just press button and change led state)?
|
||||||
|
GPIO_SW_C : in STD_LOGIC; -- reset, active low, where is this?
|
||||||
|
GPIO_LED_7 : out STD_LOGIC; -- TODO: is there ways to concatenate these?
|
||||||
|
GPIO_LED_6 : out STD_LOGIC;
|
||||||
|
GPIO_LED_5 : out STD_LOGIC;
|
||||||
|
GPIO_LED_4 : out STD_LOGIC;
|
||||||
|
GPIO_LED_3 : out STD_LOGIC;
|
||||||
|
GPIO_LED_2 : out STD_LOGIC;
|
||||||
|
GPIO_LED_1 : out STD_LOGIC;
|
||||||
|
GPIO_LED_0 : out STD_LOGIC);
|
||||||
|
end top;
|
||||||
|
|
||||||
|
architecture Behavioral of top is
|
||||||
|
signal div_clks : STD_LOGIC_VECTOR(31 downto 0);
|
||||||
|
-- TODO: set below to an integer value to select which clock you want
|
||||||
|
-- signal whichClock : STD_LOGIC;
|
||||||
|
signal clkSelect : STD_LOGIC; -- Assuming you use this signal as an output
|
||||||
|
signal CLOCK_50 : STD_LOGIC;
|
||||||
|
|
||||||
|
begin
|
||||||
|
-- Connect the instantiated clock divider
|
||||||
|
cdiv : entity work.clock_divider
|
||||||
|
port map (
|
||||||
|
clock => CLK_125_N, -- Connect to your clock source
|
||||||
|
reset => GPIO_SW_C, -- Connect to your reset signal
|
||||||
|
divided_clocks => div_clks
|
||||||
|
);
|
||||||
|
|
||||||
|
-- change the value to a higher one to see a slower blinking
|
||||||
|
GPIO_LED_7 <= GPIO_SW_C;
|
||||||
|
GPIO_LED_6 <= div_clks(27);
|
||||||
|
GPIO_LED_5 <= div_clks(26);
|
||||||
|
GPIO_LED_4 <= div_clks(25);
|
||||||
|
GPIO_LED_3 <= div_clks(24);
|
||||||
|
GPIO_LED_2 <= div_clks(23);
|
||||||
|
GPIO_LED_1 <= div_clks(22);
|
||||||
|
GPIO_LED_0 <= div_clks(21);
|
||||||
|
|
||||||
|
|
||||||
|
-- Other logic for your designs
|
||||||
|
end Behavioral;
|
|
@ -0,0 +1,108 @@
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
-- Company:
|
||||||
|
-- Engineer:
|
||||||
|
--
|
||||||
|
-- Create Date: 10/14/2023 12:29:16 PM
|
||||||
|
-- Design Name:
|
||||||
|
-- Module Name: top_tb - Behavioral
|
||||||
|
-- Project Name:
|
||||||
|
-- Target Devices:
|
||||||
|
-- Tool Versions:
|
||||||
|
-- Description:
|
||||||
|
--
|
||||||
|
-- Dependencies:
|
||||||
|
--
|
||||||
|
-- Revision:
|
||||||
|
-- Revision 0.01 - File Created
|
||||||
|
-- Additional Comments:
|
||||||
|
--
|
||||||
|
----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
library IEEE;
|
||||||
|
use IEEE.STD_LOGIC_1164.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if using
|
||||||
|
-- arithmetic functions with Signed or Unsigned values
|
||||||
|
--use IEEE.NUMERIC_STD.ALL;
|
||||||
|
|
||||||
|
-- Uncomment the following library declaration if instantiating
|
||||||
|
-- any Xilinx leaf cells in this code.
|
||||||
|
--library UNISIM;
|
||||||
|
--use UNISIM.VComponents.all;
|
||||||
|
|
||||||
|
entity top_tb is
|
||||||
|
end top_tb;
|
||||||
|
|
||||||
|
architecture test of top_tb is
|
||||||
|
signal CLK_125_N : STD_LOGIC := '0';
|
||||||
|
signal GPIO_SW_C : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_7 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_6 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_5 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_4 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_3 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_2 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_1 : STD_LOGIC := '0';
|
||||||
|
signal GPIO_LED_0 : STD_LOGIC := '0';
|
||||||
|
begin
|
||||||
|
dut: entity work.top
|
||||||
|
port map(
|
||||||
|
CLK_125_N => CLK_125_N,
|
||||||
|
GPIO_SW_C => GPIO_SW_C,
|
||||||
|
GPIO_LED_7 => GPIO_LED_7,
|
||||||
|
GPIO_LED_6 => GPIO_LED_6,
|
||||||
|
GPIO_LED_5 => GPIO_LED_5,
|
||||||
|
GPIO_LED_4 => GPIO_LED_4,
|
||||||
|
GPIO_LED_3 => GPIO_LED_3,
|
||||||
|
GPIO_LED_2 => GPIO_LED_2,
|
||||||
|
GPIO_LED_1 => GPIO_LED_1,
|
||||||
|
GPIO_LED_0 => GPIO_LED_0
|
||||||
|
);
|
||||||
|
CLK_125_N <= not CLK_125_N after 1 ps;
|
||||||
|
|
||||||
|
|
||||||
|
-- Stimulus process
|
||||||
|
process
|
||||||
|
begin
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
|
||||||
|
GPIO_SW_C <= '1';
|
||||||
|
wait for 10 ps;
|
||||||
|
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
wait until rising_edge(CLK_125_N);
|
||||||
|
|
||||||
|
GPIO_SW_C <= '0';
|
||||||
|
|
||||||
|
wait for 1 ns;
|
||||||
|
|
||||||
|
wait;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
end test;
|
|
@ -0,0 +1,32 @@
|
||||||
|
onerror {resume}
|
||||||
|
quietly WaveActivateNextPane {} 0
|
||||||
|
add wave -noupdate /top_tb/dut/CLK_125_N
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_SW_C
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_7
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_6
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_5
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_4
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_3
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_2
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_1
|
||||||
|
add wave -noupdate /top_tb/dut/GPIO_LED_0
|
||||||
|
add wave -noupdate /top_tb/dut/clkSelect
|
||||||
|
add wave -noupdate /top_tb/dut/div_clks
|
||||||
|
TreeUpdate [SetDefaultTree]
|
||||||
|
WaveRestoreCursors {{Cursor 1} {0 ps} 0}
|
||||||
|
quietly wave cursor active 1
|
||||||
|
configure wave -namecolwidth 150
|
||||||
|
configure wave -valuecolwidth 100
|
||||||
|
configure wave -justifyvalue left
|
||||||
|
configure wave -signalnamewidth 1
|
||||||
|
configure wave -snapdistance 10
|
||||||
|
configure wave -datasetprefix 0
|
||||||
|
configure wave -rowmargin 4
|
||||||
|
configure wave -childrowmargin 2
|
||||||
|
configure wave -gridoffset 0
|
||||||
|
configure wave -gridperiod 1
|
||||||
|
configure wave -griddelta 40
|
||||||
|
configure wave -timeline 0
|
||||||
|
configure wave -timelineunits ns
|
||||||
|
update
|
||||||
|
WaveRestoreZoom {0 ps} {1616433 ps}
|
Loading…
Reference in New Issue