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

📄 std_2c35.vhd

📁 nois 2cpu 硬件实现编程
💻 VHD
📖 第 1 页 / 共 5 页
字号:
  cpu_data_master_saved_grant_clock_0_in <= internal_cpu_data_master_requests_clock_0_in;  --allow new arb cycle for clock_0/in, which is an e_assign  clock_0_in_allow_new_arb_cycle <= std_logic'('1');  --placeholder chosen master  clock_0_in_grant_vector <= std_logic'('1');  --placeholder vector of master qualified-requests  clock_0_in_master_qreq_vector <= std_logic'('1');  --clock_0_in_reset_n assignment, which is an e_assign  clock_0_in_reset_n <= reset_n;  --clock_0_in_firsttransfer first transaction, which is an e_assign  clock_0_in_firsttransfer <= NOT ((clock_0_in_slavearbiterlockenable AND clock_0_in_any_continuerequest));  --clock_0_in_beginbursttransfer_internal begin burst transfer, which is an e_assign  clock_0_in_beginbursttransfer_internal <= clock_0_in_begins_xfer;  --clock_0_in_read assignment, which is an e_mux  clock_0_in_read <= internal_cpu_data_master_granted_clock_0_in AND cpu_data_master_read;  --clock_0_in_write assignment, which is an e_mux  clock_0_in_write <= internal_cpu_data_master_granted_clock_0_in AND cpu_data_master_write;  shifted_address_to_clock_0_in_from_cpu_data_master <= cpu_data_master_address_to_slave;  --clock_0_in_address mux, which is an e_mux  clock_0_in_address <= A_EXT (A_SRL(shifted_address_to_clock_0_in_from_cpu_data_master,std_logic_vector'("00000000000000000000000000000010")), 4);  --slaveid clock_0_in_nativeaddress nativeaddress mux, which is an e_mux  clock_0_in_nativeaddress <= A_EXT (A_SRL(cpu_data_master_address_to_slave,std_logic_vector'("00000000000000000000000000000010")), 3);  --d1_clock_0_in_end_xfer register, which is an e_register  process (clk, reset_n)  begin    if reset_n = '0' then      d1_clock_0_in_end_xfer <= std_logic'('1');    elsif clk'event and clk = '1' then      if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then         d1_clock_0_in_end_xfer <= clock_0_in_end_xfer;      end if;    end if;  end process;  --clock_0_in_waits_for_read in a cycle, which is an e_mux  clock_0_in_waits_for_read <= clock_0_in_in_a_read_cycle AND internal_clock_0_in_waitrequest_from_sa;  --clock_0_in_in_a_read_cycle assignment, which is an e_assign  clock_0_in_in_a_read_cycle <= internal_cpu_data_master_granted_clock_0_in AND cpu_data_master_read;  --in_a_read_cycle assignment, which is an e_mux  in_a_read_cycle <= clock_0_in_in_a_read_cycle;  --clock_0_in_waits_for_write in a cycle, which is an e_mux  clock_0_in_waits_for_write <= clock_0_in_in_a_write_cycle AND internal_clock_0_in_waitrequest_from_sa;  --clock_0_in_in_a_write_cycle assignment, which is an e_assign  clock_0_in_in_a_write_cycle <= internal_cpu_data_master_granted_clock_0_in AND cpu_data_master_write;  --in_a_write_cycle assignment, which is an e_mux  in_a_write_cycle <= clock_0_in_in_a_write_cycle;  wait_for_clock_0_in_counter <= std_logic'('0');  --clock_0_in_byteenable byte enable port mux, which is an e_mux  clock_0_in_byteenable <= A_EXT (A_WE_StdLogicVector((std_logic'((internal_cpu_data_master_granted_clock_0_in)) = '1'), (std_logic_vector'("0000000000000000000000000000") & (cpu_data_master_byteenable)), -SIGNED(std_logic_vector'("00000000000000000000000000000001"))), 2);  --vhdl renameroo for output signals  clock_0_in_waitrequest_from_sa <= internal_clock_0_in_waitrequest_from_sa;  --vhdl renameroo for output signals  cpu_data_master_granted_clock_0_in <= internal_cpu_data_master_granted_clock_0_in;  --vhdl renameroo for output signals  cpu_data_master_qualified_request_clock_0_in <= internal_cpu_data_master_qualified_request_clock_0_in;  --vhdl renameroo for output signals  cpu_data_master_requests_clock_0_in <= internal_cpu_data_master_requests_clock_0_in;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;library std;use std.textio.all;entity clock_0_out_arbitrator is         port (              -- inputs:                 signal clk : IN STD_LOGIC;                 signal clock_0_out_address : IN STD_LOGIC_VECTOR (3 DOWNTO 0);                 signal clock_0_out_granted_pll_s1 : IN STD_LOGIC;                 signal clock_0_out_qualified_request_pll_s1 : IN STD_LOGIC;                 signal clock_0_out_read : IN STD_LOGIC;                 signal clock_0_out_read_data_valid_pll_s1 : IN STD_LOGIC;                 signal clock_0_out_requests_pll_s1 : IN STD_LOGIC;                 signal clock_0_out_write : IN STD_LOGIC;                 signal clock_0_out_writedata : IN STD_LOGIC_VECTOR (15 DOWNTO 0);                 signal d1_pll_s1_end_xfer : IN STD_LOGIC;                 signal pll_s1_readdata_from_sa : IN STD_LOGIC_VECTOR (15 DOWNTO 0);                 signal reset_n : IN STD_LOGIC;              -- outputs:                 signal clock_0_out_address_to_slave : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);                 signal clock_0_out_readdata : OUT STD_LOGIC_VECTOR (15 DOWNTO 0);                 signal clock_0_out_reset_n : OUT STD_LOGIC;                 signal clock_0_out_waitrequest : OUT STD_LOGIC              );attribute auto_dissolve : boolean;attribute auto_dissolve of clock_0_out_arbitrator : entity is FALSE;end entity clock_0_out_arbitrator;architecture europa of clock_0_out_arbitrator is                signal active_and_waiting_last_time :  STD_LOGIC;                signal clock_0_out_address_last_time :  STD_LOGIC_VECTOR (3 DOWNTO 0);                signal clock_0_out_read_last_time :  STD_LOGIC;                signal clock_0_out_run :  STD_LOGIC;                signal clock_0_out_write_last_time :  STD_LOGIC;                signal clock_0_out_writedata_last_time :  STD_LOGIC_VECTOR (15 DOWNTO 0);                signal internal_clock_0_out_address_to_slave :  STD_LOGIC_VECTOR (3 DOWNTO 0);                signal internal_clock_0_out_waitrequest :  STD_LOGIC;                signal r_2 :  STD_LOGIC;begin  --r_2 master_run cascaded wait assignment, which is an e_assign  r_2 <= Vector_To_Std_Logic(((std_logic_vector'("00000000000000000000000000000001") AND (((std_logic_vector'("0000000000000000000000000000000") & (A_TOSTDLOGICVECTOR((NOT clock_0_out_qualified_request_pll_s1 OR NOT clock_0_out_read)))) OR (((std_logic_vector'("00000000000000000000000000000001") AND (std_logic_vector'("0000000000000000000000000000000") & (A_TOSTDLOGICVECTOR(NOT d1_pll_s1_end_xfer)))) AND (std_logic_vector'("0000000000000000000000000000000") & (A_TOSTDLOGICVECTOR(clock_0_out_read)))))))) AND (((std_logic_vector'("0000000000000000000000000000000") & (A_TOSTDLOGICVECTOR((NOT clock_0_out_qualified_request_pll_s1 OR NOT clock_0_out_write)))) OR ((std_logic_vector'("00000000000000000000000000000001") AND (std_logic_vector'("0000000000000000000000000000000") & (A_TOSTDLOGICVECTOR(clock_0_out_write)))))))));  --cascaded wait assignment, which is an e_assign  clock_0_out_run <= r_2;  --optimize select-logic by passing only those address bits which matter.  internal_clock_0_out_address_to_slave <= clock_0_out_address;  --clock_0/out readdata mux, which is an e_mux  clock_0_out_readdata <= pll_s1_readdata_from_sa;  --actual waitrequest port, which is an e_assign  internal_clock_0_out_waitrequest <= NOT clock_0_out_run;  --clock_0_out_reset_n assignment, which is an e_assign  clock_0_out_reset_n <= reset_n;  --vhdl renameroo for output signals  clock_0_out_address_to_slave <= internal_clock_0_out_address_to_slave;  --vhdl renameroo for output signals  clock_0_out_waitrequest <= internal_clock_0_out_waitrequest;--synthesis translate_off    --clock_0_out_address check against wait, which is an e_register    process (clk, reset_n)    begin      if reset_n = '0' then        clock_0_out_address_last_time <= std_logic_vector'("0000");      elsif clk'event and clk = '1' then        if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then           clock_0_out_address_last_time <= clock_0_out_address;        end if;      end if;    end process;    --clock_0/out waited last time, which is an e_register    process (clk, reset_n)    begin      if reset_n = '0' then        active_and_waiting_last_time <= std_logic'('0');      elsif clk'event and clk = '1' then        if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then           active_and_waiting_last_time <= internal_clock_0_out_waitrequest AND ((clock_0_out_read OR clock_0_out_write));        end if;      end if;    end process;    --clock_0_out_address matches last port_name, which is an e_process    process (active_and_waiting_last_time, clock_0_out_address, clock_0_out_address_last_time)    VARIABLE write_line : line;    begin        if std_logic'((active_and_waiting_last_time AND to_std_logic(((clock_0_out_address /= clock_0_out_address_last_time))))) = '1' then           write(write_line, now);          write(write_line, string'(": "));          write(write_line, string'("clock_0_out_address did not heed wait!!!"));          write(output, write_line.all);          deallocate (write_line);          assert false report "VHDL STOP" severity failure;        end if;    end process;    --clock_0_out_read check against wait, which is an e_register    process (clk, reset_n)    begin      if reset_n = '0' then        clock_0_out_read_last_time <= std_logic'('0');      elsif clk'event and clk = '1' then        if (std_logic_vector'("00000000000000000000000000000001")) /= std_logic_vector'("00000000000000000000000000000000") then           clock_0_out_read_last_time <= clock_0_out_read;        end if;      end if;    end process;    --clock_0_out_read matches last port_name, which is an e_process    process (active_and_waiting_last_time, clock_0_out_read, clock_0_out_read_last_time)    VARIABLE write_line1 : line;    begin        if std_logic'((active_and_waiting_last_time AND to_std_logic(((std_logic'(clock_0_out_read) /= std_logic'(clock_0_out_read_last_time)))))) = '1' then           write(write_line1, now);          write(write_line1, string'(": "));          write(write_line1, string'("clock_0_out_read did not heed wait!!!"));          write(output, write_line1.all);          deallocate (write_line1);

⌨️ 快捷键说明

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