Motion FPGA
Motion FPGA for the MachX02-7000HE Breakout Board
gpio_device.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 --! @file
3 --! @brief PWM device
4 -------------------------------------------------------------------------------
5 
6 --! Using IEEE library
7 LIBRARY ieee;
8 
9 --! Using IEEE standard logic components
10 USE ieee.std_logic_1164.ALL;
11 
12 ENTITY gpio_device IS
13  PORT (
14  clk_in : IN std_logic; --! Clock
15  rst_in : IN std_logic; --! Asynchronous reset
16  dat_wr_done_in : IN std_logic; --! Device Write Done flag
17  dat_wr_reg_in : IN std_logic_vector(31 DOWNTO 0); --! Device Write Register value
18  dat_rd_reg_out : OUT std_logic_vector(31 DOWNTO 0); --! Device Read Register value
19  gpio_bus_in : IN std_logic_vector(31 DOWNTO 0); --! GPIO inputs
20  gpio_bus_out : OUT std_logic_vector(31 DOWNTO 0) --! GPIO outputs
21  );
22 END ENTITY gpio_device;
23 
24 ARCHITECTURE rtl OF gpio_device IS
25 
26  -- Current gpio outputs
27  SIGNAL gpio_out : std_logic_vector(31 DOWNTO 0);
28 
29 BEGIN
30 
31  --! @brief Handle outputs (reset and write)
32  pr_output : PROCESS (clk_in, rst_in) IS
33  BEGIN
34 
35  IF (rst_in = '1') THEN
36  -- Reset
37  gpio_out <= (OTHERS => '0');
38  ELSIF (rising_edge(clk_in)) THEN
39  IF (dat_wr_done_in = '1') THEN
40  -- Save write data
41  gpio_out <= dat_wr_reg_in;
42  END IF;
43  END IF;
44 
45  END PROCESS pr_output;
46 
47  -- Drive dat_rd_reg_out from gpio_bus_in
49 
50  -- Drive gpio_bus_out from gpio_out
51  gpio_bus_out <= gpio_out;
52 
53 END ARCHITECTURE rtl;
out dat_rd_reg_outstd_logic_vector( 31 DOWNTO 0)
Device Read Register value.
Definition: gpio_device.vhd:18
in clk_instd_logic
Clock.
Definition: gpio_device.vhd:14
out gpio_bus_outstd_logic_vector( 31 DOWNTO 0)
GPIO outputs.
Definition: gpio_device.vhd:21
in rst_instd_logic
Asynchronous reset.
Definition: gpio_device.vhd:15
in dat_wr_done_instd_logic
Device Write Done flag.
Definition: gpio_device.vhd:16
_library_ ieeeieee
Using IEEE library.
Definition: drv8711_spi.vhd:7
in dat_wr_reg_instd_logic_vector( 31 DOWNTO 0)
Device Write Register value.
Definition: gpio_device.vhd:17
in gpio_bus_instd_logic_vector( 31 DOWNTO 0)
GPIO inputs.
Definition: gpio_device.vhd:19