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

📄 clock_0.vhd

📁 nois 2cpu 硬件实现编程
💻 VHD
📖 第 1 页 / 共 3 页
字号:
--Legal Notice: (C)2006 Altera Corporation. All rights reserved.  Your--use of Altera Corporation's design tools, logic functions and other--software and tools, and its AMPP partner logic functions, and any--output files any of the foregoing (including device programming or--simulation files), and any associated documentation or information are--expressly subject to the terms and conditions of the Altera Program--License Subscription Agreement or other applicable license agreement,--including, without limitation, that your use is for the sole purpose--of programming logic devices manufactured by Altera and sold by Altera--or its authorized distributors.  Please refer to the applicable--agreement for further details.-- 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_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 entity clock_0_master_read_done_sync_module;architecture europa of clock_0_master_read_done_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_write_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 entity clock_0_master_write_done_sync_module;architecture europa of clock_0_master_write_done_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_edge_to_pulse is         port (              -- inputs:                 signal clock : 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_edge_to_pulse;architecture europa of clock_0_edge_to_pulse is                signal data_in_d1 :  STD_LOGIC;begin  process (clock, reset_n)  begin    if reset_n = '0' then      data_in_d1 <= std_logic'('0');    elsif clock'event and clock = '1' then      if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then         data_in_d1 <= data_in;      end if;    end if;  end process;  data_out <= data_in XOR data_in_d1;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_FSM is         port (              -- inputs:                 signal master_read_done_token : IN STD_LOGIC;                 signal master_write_done_token : IN STD_LOGIC;                 signal slave_clk : IN STD_LOGIC;                 signal slave_read : IN STD_LOGIC;                 signal slave_reset_n : IN STD_LOGIC;                 signal slave_write : IN STD_LOGIC;              -- outputs:                 signal slave_read_request : OUT STD_LOGIC;                 signal slave_waitrequest : OUT STD_LOGIC;                 signal slave_write_request : OUT STD_LOGIC              );end entity clock_0_slave_FSM;architecture europa of clock_0_slave_FSM is                signal internal_slave_read_request :  STD_LOGIC;                signal internal_slave_write_request :  STD_LOGIC;                signal next_slave_read_request :  STD_LOGIC;                signal next_slave_state :  STD_LOGIC_VECTOR (2 DOWNTO 0);                signal next_slave_write_request :  STD_LOGIC;                signal slave_state :  STD_LOGIC_VECTOR (2 DOWNTO 0);begin  process (slave_clk, slave_reset_n)  begin    if slave_reset_n = '0' then      internal_slave_read_request <= std_logic'('0');    elsif slave_clk'event and slave_clk = '1' then      if true then         internal_slave_read_request <= next_slave_read_request;      end if;    end if;  end process;  process (slave_clk, slave_reset_n)  begin    if slave_reset_n = '0' then      internal_slave_write_request <= std_logic'('0');    elsif slave_clk'event and slave_clk = '1' then      if true then         internal_slave_write_request <= next_slave_write_request;      end if;    end if;  end process;  process (slave_clk, slave_reset_n)  begin    if slave_reset_n = '0' then      slave_state <= std_logic_vector'("001");    elsif slave_clk'event and slave_clk = '1' then      if true then         slave_state <= next_slave_state;      end if;    end if;  end process;  process (internal_slave_read_request, internal_slave_write_request, master_read_done_token, master_write_done_token, slave_read, slave_state, slave_write)  begin      case slave_state is -- synthesis parallel_case          when std_logic_vector'("001") =>               --read request: go from IDLE state to READ_WAIT state              if std_logic'(slave_read) = '1' then                 next_slave_state <= std_logic_vector'("010");                slave_waitrequest <= std_logic'('1');                next_slave_read_request <= NOT(internal_slave_read_request);                next_slave_write_request <= internal_slave_write_request;              elsif std_logic'(slave_write) = '1' then                 next_slave_state <= std_logic_vector'("100");                slave_waitrequest <= std_logic'('1');                next_slave_read_request <= internal_slave_read_request;                next_slave_write_request <= NOT(internal_slave_write_request);              else                next_slave_state <= slave_state;                slave_waitrequest <= std_logic'('0');                next_slave_read_request <= internal_slave_read_request;                next_slave_write_request <= internal_slave_write_request;              end if;          -- when std_logic_vector'("001")                 when std_logic_vector'("010") =>               --stay in READ_WAIT state until master passes read done token              if std_logic'(master_read_done_token) = '1' then                 next_slave_state <= std_logic_vector'("001");                slave_waitrequest <= std_logic'('0');              else                next_slave_state <= std_logic_vector'("010");                slave_waitrequest <= std_logic'('1');              end if;              next_slave_read_request <= internal_slave_read_request;              next_slave_write_request <= internal_slave_write_request;          -- when std_logic_vector'("010")                 when std_logic_vector'("100") =>               --stay in WRITE_WAIT state until master passes write done token              if std_logic'(master_write_done_token) = '1' then                 next_slave_state <= std_logic_vector'("001");                slave_waitrequest <= std_logic'('0');              else                next_slave_state <= std_logic_vector'("100");                slave_waitrequest <= std_logic'('1');              end if;              next_slave_read_request <= internal_slave_read_request;              next_slave_write_request <= internal_slave_write_request;          -- when std_logic_vector'("100")                 when others =>               next_slave_state <= std_logic_vector'("001");              slave_waitrequest <= std_logic'('0');              next_slave_read_request <= internal_slave_read_request;              next_slave_write_request <= internal_slave_write_request;          -- when others             end case; -- slave_state  end process;  --vhdl renameroo for output signals  slave_read_request <= internal_slave_read_request;  --vhdl renameroo for output signals  slave_write_request <= internal_slave_write_request;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_read_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_read_request_sync_module;architecture europa of clock_0_slave_read_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;

⌨️ 快捷键说明

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