aboutsummaryrefslogtreecommitdiff
path: root/src/t_de1_murax_franz.vhd
diff options
context:
space:
mode:
Diffstat (limited to 'src/t_de1_murax_franz.vhd')
-rw-r--r--src/t_de1_murax_franz.vhd75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/t_de1_murax_franz.vhd b/src/t_de1_murax_franz.vhd
new file mode 100644
index 0000000..cdd3062
--- /dev/null
+++ b/src/t_de1_murax_franz.vhd
@@ -0,0 +1,75 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity t_de1_murax_franz is
+end t_de1_murax_franz;
+
+architecture tbench of t_de1_murax_franz is
+
+ -- definition of a clock period
+ constant period : time := 20 ns;
+ -- switch for clock generator
+ signal clken_p : boolean := true;
+
+
+ signal clk_i : std_ulogic;
+ signal rst_ni : std_ulogic;
+ signal key : std_ulogic;
+ signal ledr : std_ulogic_vector(7 downto 0);
+
+ signal tck, tdi, tms, tdo : std_logic;
+ signal uart_rxd, uart_txd : std_logic;
+
+begin
+
+ -- clock generation
+ clock_proc : process
+ begin
+ while clken_p loop
+ clk_i <= '0'; wait for period/2;
+ clk_i <= '1'; wait for period/2;
+ end loop;
+ wait;
+ end process;
+
+ -- initial reset, always necessary at the beginning of a simulation
+ reset : rst_ni <= '0', '1' AFTER period;
+
+ stimuli_p : process
+ begin
+ wait until rst_ni = '1';
+ wait for 15*period;
+ --wait until falling_edge(clk_i) and ledr = "00010";
+
+ wait;
+ clken_p <= false;
+ wait;
+ end process stimuli_p;
+
+ tck <= '0';
+ tdi <= '0';
+ tms <= '0';
+ uart_rxd <= '1';
+
+
+ de1_murax_franz_i0 : entity work.de1_murax_franz
+ port map (
+ CLOCK_50 => clk_i,
+ JTAG_TCK => tck,
+ JTAG_TDI => tdi,
+ JTAG_TDO => tdo,
+ JTAG_TMS => tms,
+ UART_RXD => uart_rxd,
+ UART_TXD => uart_txd,
+ KEY0 => rst_ni,
+ LEDR => ledr);
+
+ simstop_p : process
+ begin
+ wait;
+ wait on clken_p for 3000 ms;
+ assert not clken_p report "Simulation failed due to timeout" severity failure;
+ wait;
+ end process;
+
+end tbench;