⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock_0.vhd

📁 nois 2cpu 硬件实现编程
💻 VHD
📖 第 1 页 / 共 3 页
字号:
      end if;    end if;  end process;end europa;-- turn off superfluous VHDL processor warnings -- altera message_level Level1 -- altera message_off 10034 10035 10036 10037 10230 10240 10030 library altera;use altera.altera_europa_support_lib.all;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clock_0_slave_write_request_sync_module is         port (              -- inputs:                 signal clk : IN STD_LOGIC;                 signal data_in : IN STD_LOGIC;                 signal reset_n : IN STD_LOGIC;              -- outputs:                 signal data_out : OUT STD_LOGIC              );end entity clock_0_slave_write_request_sync_module;architecture europa of clock_0_slave_write_request_sync_module is                signal data_in_d1 :  STD_LOGIC;attribute ALTERA_ATTRIBUTE : string;attribute ALTERA_ATTRIBUTE of data_in_d1 : signal is "MAX_DELAY=100ns ; PRESERVE_REGISTER=ON";attribute ALTERA_ATTRIBUTE of data_out : signal is "PRESERVE_REGISTER=ON";begin  process (clk, reset_n)  begin    if reset_n = '0' then      data_in_d1 <= std_logic'('0');    elsif clk'event and clk = '1' then      if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then         data_in_d1 <= data_in;      end if;    end if;  end process;  process (clk, reset_n)  begin    if reset_n = '0' then      data_out <= std_logic'('0');    elsif clk'event and clk = '1' then      if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then         data_out <= data_in_d1;      end if;    end if;  end process;end europa;-- turn off superfluous VHDL processor warnings -- altera message_level Level1 -- altera message_off 10034 10035 10036 10037 10230 10240 10030 library altera;use altera.altera_europa_support_lib.all;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clock_0_master_FSM is         port (              -- inputs:                 signal master_clk : IN STD_LOGIC;                 signal master_reset_n : IN STD_LOGIC;                 signal master_waitrequest : IN STD_LOGIC;                 signal slave_read_request_token : IN STD_LOGIC;                 signal slave_write_request_token : IN STD_LOGIC;              -- outputs:                 signal master_read : OUT STD_LOGIC;                 signal master_read_done : OUT STD_LOGIC;                 signal master_write : OUT STD_LOGIC;                 signal master_write_done : OUT STD_LOGIC              );end entity clock_0_master_FSM;architecture europa of clock_0_master_FSM is                signal internal_master_read1 :  STD_LOGIC;                signal internal_master_read_done :  STD_LOGIC;                signal internal_master_write1 :  STD_LOGIC;                signal internal_master_write_done :  STD_LOGIC;                signal master_state :  STD_LOGIC_VECTOR (2 DOWNTO 0);                signal next_master_read :  STD_LOGIC;                signal next_master_read_done :  STD_LOGIC;                signal next_master_state :  STD_LOGIC_VECTOR (2 DOWNTO 0);                signal next_master_write :  STD_LOGIC;                signal next_master_write_done :  STD_LOGIC;begin  process (master_clk, master_reset_n)  begin    if master_reset_n = '0' then      internal_master_read_done <= std_logic'('0');    elsif master_clk'event and master_clk = '1' then      if true then         internal_master_read_done <= next_master_read_done;      end if;    end if;  end process;  process (master_clk, master_reset_n)  begin    if master_reset_n = '0' then      internal_master_write_done <= std_logic'('0');    elsif master_clk'event and master_clk = '1' then      if true then         internal_master_write_done <= next_master_write_done;      end if;    end if;  end process;  process (master_clk, master_reset_n)  begin    if master_reset_n = '0' then      internal_master_read1 <= std_logic'('0');    elsif master_clk'event and master_clk = '1' then      if true then         internal_master_read1 <= next_master_read;      end if;    end if;  end process;  process (master_clk, master_reset_n)  begin    if master_reset_n = '0' then      internal_master_write1 <= std_logic'('0');    elsif master_clk'event and master_clk = '1' then      if true then         internal_master_write1 <= next_master_write;      end if;    end if;  end process;  process (master_clk, master_reset_n)  begin    if master_reset_n = '0' then      master_state <= std_logic_vector'("001");    elsif master_clk'event and master_clk = '1' then      if true then         master_state <= next_master_state;      end if;    end if;  end process;  process (internal_master_read1, internal_master_read_done, internal_master_write1, internal_master_write_done, master_state, master_waitrequest, slave_read_request_token, slave_write_request_token)  begin      case master_state is -- synthesis parallel_case          when std_logic_vector'("001") =>               --if read request token from slave then goto READ_WAIT state              if std_logic'(slave_read_request_token) = '1' then                 next_master_state <= std_logic_vector'("010");                next_master_read <= std_logic'('1');                next_master_write <= std_logic'('0');              elsif std_logic'(slave_write_request_token) = '1' then                 next_master_state <= std_logic_vector'("100");                next_master_read <= std_logic'('0');                next_master_write <= std_logic'('1');              else                next_master_state <= master_state;                next_master_read <= std_logic'('0');                next_master_write <= std_logic'('0');              end if;              next_master_read_done <= internal_master_read_done;              next_master_write_done <= internal_master_write_done;          -- when std_logic_vector'("001")                 when std_logic_vector'("010") =>               --stay in READ_WAIT state until master wait is deasserted              if std_logic'(NOT(master_waitrequest)) = '1' then                 next_master_state <= std_logic_vector'("001");                next_master_read_done <= NOT(internal_master_read_done);                next_master_read <= std_logic'('0');              else                next_master_state <= std_logic_vector'("010");                next_master_read_done <= internal_master_read_done;                next_master_read <= internal_master_read1;              end if;              next_master_write_done <= internal_master_write_done;              next_master_write <= std_logic'('0');          -- when std_logic_vector'("010")                 when std_logic_vector'("100") =>               --stay in WRITE_WAIT state until slave wait is deasserted              if std_logic'(NOT(master_waitrequest)) = '1' then                 next_master_state <= std_logic_vector'("001");                next_master_write <= std_logic'('0');                next_master_write_done <= NOT(internal_master_write_done);              else                next_master_state <= std_logic_vector'("100");                next_master_write <= internal_master_write1;                next_master_write_done <= internal_master_write_done;              end if;              next_master_read_done <= internal_master_read_done;              next_master_read <= std_logic'('0');          -- when std_logic_vector'("100")                 when others =>               next_master_state <= std_logic_vector'("001");              next_master_write <= std_logic'('0');              next_master_write_done <= internal_master_write_done;              next_master_read <= std_logic'('0');              next_master_read_done <= internal_master_read_done;          -- when others             end case; -- master_state  end process;  --vhdl renameroo for output signals  master_read <= internal_master_read1;  --vhdl renameroo for output signals  master_read_done <= internal_master_read_done;  --vhdl renameroo for output signals  master_write <= internal_master_write1;  --vhdl renameroo for output signals  master_write_done <= internal_master_write_done;end europa;-- turn off superfluous VHDL processor warnings -- altera message_level Level1 -- altera message_off 10034 10035 10036 10037 10230 10240 10030 library altera;use altera.altera_europa_support_lib.all;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clock_0_bit_pipe is         port (              -- inputs:                 signal clk1 : IN STD_LOGIC;                 signal clk2 : IN STD_LOGIC;                 signal data_in : IN STD_LOGIC;                 signal reset_clk1_n : IN STD_LOGIC;                 signal reset_clk2_n : IN STD_LOGIC;              -- outputs:                 signal data_out : OUT STD_LOGIC              );end entity clock_0_bit_pipe;architecture europa of clock_0_bit_pipe is                signal data_in_d1 :  STD_LOGIC;attribute ALTERA_ATTRIBUTE : string;attribute ALTERA_ATTRIBUTE of data_in_d1 : signal is "{-to ""*""} CUT=ON ; PRESERVE_REGISTER=ON";attribute ALTERA_ATTRIBUTE of data_out : signal is "PRESERVE_REGISTER=ON";begin  process (clk1, reset_clk1_n)  begin    if reset_clk1_n = '0' then      data_in_d1 <= std_logic'('0');    elsif clk1'event and clk1 = '1' then      if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then         data_in_d1 <= data_in;      end if;    end if;  end process;  process (clk2, reset_clk2_n)  begin    if reset_clk2_n = '0' then      data_out <= std_logic'('0');    elsif clk2'event and clk2 = '1' then      if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then         data_out <= data_in_d1;      end if;    end if;  end process;end europa;-- turn off superfluous VHDL processor warnings -- altera message_level Level1 -- altera message_off 10034 10035 10036 10037 10230 10240 10030 library altera;use altera.altera_europa_support_lib.all;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--Clock Domain Crossing Adapterclock_0entity clock_0 is         port (              -- inputs:                 signal master_clk : IN STD_LOGIC;                 signal master_endofpacket : IN STD_LOGIC;                 signal master_readdata : IN STD_LOGIC_VECTOR (15 DOWNTO 0);                 signal master_reset_n : IN STD_LOGIC;                 signal master_waitrequest : IN STD_LOGIC;                 signal slave_address : IN STD_LOGIC_VECTOR (3 DOWNTO 0);                 signal slave_byteenable : IN STD_LOGIC_VECTOR (1 DOWNTO 0);                 signal slave_clk : IN STD_LOGIC;                 signal slave_nativeaddress : IN STD_LOGIC_VECTOR (2 DOWNTO 0);                 signal slave_read : IN STD_LOGIC;                 signal slave_reset_n : IN STD_LOGIC;                 signal slave_write : IN STD_LOGIC;                 signal slave_writedata : IN STD_LOGIC_VECTOR (15 DOWNTO 0);              -- outputs:                 signal master_address : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);                 signal master_byteenable : OUT STD_LOGIC_VECTOR (1 DOWNTO 0);                 signal master_nativeaddress : OUT STD_LOGIC_VECTOR (2 DOWNTO 0);                 signal master_read : OUT STD_LOGIC;                 signal master_write : OUT STD_LOGIC;                 signal master_writedata : OUT STD_LOGIC_VECTOR (15 DOWNTO 0);                 signal slave_endofpacket : OUT STD_LOGIC;                 signal slave_readdata : OUT STD_LOGIC_VECTOR (15 DOWNTO 0);                 signal slave_waitrequest : OUT STD_LOGIC              );end entity clock_0;architecture europa of clock_0 iscomponent clock_0_master_read_done_sync_module is            port (                 -- inputs:                    signal clk : IN STD_LOGIC;                    signal data_in : IN STD_LOGIC;                    signal reset_n : IN STD_LOGIC;                 -- outputs:                    signal data_out : OUT STD_LOGIC                 );end component clock_0_master_read_done_sync_module;component clock_0_master_write_done_sync_module is            port (                 -- inputs:                    signal clk : IN STD_LOGIC;                    signal data_in : IN STD_LOGIC;                    signal reset_n : IN STD_LOGIC;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -