📄 std_2c35.vhd
字号:
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 + -