---------------SPI MASTER -----------------------------------------------------------------
-- PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL DIGI-KEY
-- ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER SIMILAR COSTS.
enable : IN STD_LOGIC; --initiate transaction
cont : IN STD_LOGIC; --continuous mode command
clk_div : IN INTEGER; --system clock cycles per 1/2 period of sclk
miso : IN STD_LOGIC; --master in, slave out
mosi : OUT STD_LOGIC; --master out, slave in
busy : OUT STD_LOGIC; --busy / data ready signal
TYPE machine IS(ready, execute); --state machine data type
SIGNAL slave : INTEGER; --slave selected for current transaction
SIGNAL count : INTEGER; --counter to trigger sclk from system clock
SIGNAL clk_toggles : INTEGER RANGE 0 TO d_width*2 + 1; --count spi clock toggles
SIGNAL assert_data : STD_LOGIC; --'1' is tx sclk toggle, '0' is rx sclk toggle
SIGNAL continue : STD_LOGIC; --flag to continue transaction
SIGNAL rx_buffer : STD_LOGIC_VECTOR(d_width-1 DOWNTO 0); --receive data buffer
SIGNAL tx_buffer : STD_LOGIC_VECTOR(d_width-1 DOWNTO 0); --transmit data buffer
SIGNAL last_bit_rx : INTEGER RANGE 0 TO d_width*2; --last rx data bit location
slave <= addr; --clock in current slave selection if valid
last_bit_rx <= d_width*2 + conv_integer(cpha) - 1; --set last rx data bit
clk_toggles <= 0; --reset spi clock toggles counter
clk_toggles <= clk_toggles + 1; --increment spi clock toggles counter
IF(assert_data = '0' AND clk_toggles < last_bit_rx + 1 AND ss_n(slave) = '0') THEN
rx_buffer <= rx_buffer(d_width-2 DOWNTO 0) & miso; --shift in received bit
mosi <= tx_buffer(d_width-1); --clock out data bit
tx_buffer <= tx_buffer(d_width-2 DOWNTO 0) & '0'; --shift data transmit buffer
tx_buffer <= tx_data; --reload transmit buffer
clk_toggles <= last_bit_rx - d_width*2 + 1; --reset spi clock toggle counter
continue <= '1'; --set continue flag
busy <= '0'; --clock out signal that first receive data is ready
rx_data <= rx_buffer; --clock out received data to output port
rx_data <= rx_buffer; --clock out received data to output port
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 20.10.2020 15:23:32
-- Design Name:
-- Module Name: top - 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;
use ieee.std_logic_unsigned.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 is
Port ( clk , rstn , dac_en: in std_logic ;
mosi : out std_logic ;
sclk : buffer std_logic ;
cs : buffer std_logic_Vector( 0 downto 0)
);
end top;
architecture Behavioral of top is
type rom_type is array (1023 downto 0) of std_logic_vector (11 downto 0);
signal ROM : rom_type:= (
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",
--X"000", X"000", X"000", X"000",X"FFF" ,X"FFF" ,X"FFF" ,X"FFF" ,X"FFF",X"FFF" ,X"FFF",
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,X"FFF" , X"FFF" , X"FFF" , X"FFF" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" ,
X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000" , X"000", X"000" ,X"000" ,X"000"
);
component latest_dac7513_top IS
GENERIC(
clk_freq : INTEGER := 50; --system clock frequency in MHz
spi_clk_div : INTEGER := 1); --spi_clk_div = clk_freq/100 (answer rounded up)
PORT(
clk : IN STD_LOGIC; --system clock
reset_n : IN STD_LOGIC; --active low asynchronous reset
dac_tx_ena : IN STD_LOGIC; --enable transaction with DAC
dac_cmd : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --command to send to DAC
dac_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --address to send to DAC
dac_data : IN STD_LOGIC_VECTOR(11 DOWNTO 0); --data value to send to DAC
busy : OUT STD_LOGIC; --indicates when transactions with DAC can be initiated
mosi : OUT STD_LOGIC; --SPI bus to DAC: master out, slave in (DIN)
sclk : BUFFER STD_LOGIC; --SPI bus to DAC: serial clock (SCLK)
ss_n : BUFFER STD_LOGIC_VECTOR(0 DOWNTO 0)); --SPI bus to DAC: slave select (~SYNC)
END component latest_dac7513_top;
signal clock50 : std_logic ;
signal data : std_logic_Vector ( 11 downto 0) ;
SIGNAL addr_count : std_logic_vector ( 6 downto 0) ;
----http://justpaste.it/6hyzm
component clk_wiz_0
port
(-- Clock in ports
-- Clock out ports
clk_out1 : out std_logic;
clk_in1 : in std_logic
);
end component;
begin
u1 : clk_wiz_0
port map (
-- Clock out ports
clk_out1 => clock50,
-- Clock in ports
clk_in1 => clk
);
process ( clock50,rstn ) begin
if ( rstn='0') then
addr_count <=(others=>'0') ;
elsif rising_Edge ( clock50 ) then
if ( dac_en='0') then
addr_count<=(others=>'0') ;
else
addr_count <= addr_count +1 ;
end if ;
end if ;
end process ;
process (clock50)
begin
if rising_edge(clock50) then
if (dac_en = '1') then
data<= ROM(conv_integer(addr_count));
end if;
end if;
end process;
u2 : latest_dac7513_top
GENERIC map (
clk_freq => 50, --system clock frequency in MHz
spi_clk_div =>1 ) --spi_clk_div = clk_freq/100 (answer rounded up)
PORT map (
clk => clock50, --- : IN STD_LOGIC; --system clock
reset_n =>rstn , -- : IN STD_LOGIC; --active low asynchronous reset
dac_tx_ena=>dac_en , ---- : IN STD_LOGIC; --enable transaction with DAC
dac_cmd =>"0000" , --- : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --command to send to DAC
dac_addr =>"0000" , --- : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --address to send to DAC
dac_data =>data , ---x"fff" , --- : IN STD_LOGIC_VECTOR(11 DOWNTO 0); --data value to send to DAC
busy =>open , ---- OUT STD_LOGIC; --indicates when transactions with DAC can be initiated
mosi => mosi , ---- OUT STD_LOGIC; --SPI bus to DAC: master out, slave in (DIN)
sclk =>sclk , --- : BUFFER STD_LOGIC; --SPI bus to DAC: serial clock (SCLK)
ss_n =>cs -- : BUFFER STD_LOGIC_VECTOR(0 DOWNTO 0)); --SPI bus to DAC: slave select end
);
end Behavioral;
No comments:
Post a Comment