Gast
#894751
hi! ich möchte den std_logic_vector(511 DOWNTO 0) "next_reset_eeprom_data" in einer fsm in zu jedem Takt mit 8bit aus dem Speicher "bram_dout" füllen. obwohl upper und lower adress in der Simulation(Modelsim) die Werte '7' und '0' haben, kommt der Fehler: ** Fatal: (vsim-3420) Array lengths do not match. Left is 1 (0 downto 0). Right is 8 (7 downto 0). habe außer dem to_integer(unsigned(std_logic_vector)) cast noch to_unsigned(unsigned(std_logic_vector)) und CONV_INTEGER(std_logic_vector) ausprobiert - aber es kommt der selbe Fehler. Was mache ich bloß falsch? WHEN READ_DATA => next_reset_eeprom_ctrl_bram_addr <= reset_eeprom_ctrl_bram_addr +1; next_reset_eeprom_upper_addr <= current_reset_eeprom_upper_addr +8; next_reset_eeprom_lower_addr <= current_reset_eeprom_lower_addr +8; next_reset_eeprom_data( to_integer(unsigned(current_reset_eeprom_lower_addr)) DOWNTO to_integer(unsigned(current_reset_eeprom_lower_addr))) <= bram_dout; IF (current_reset_eeprom_upper_addr = 16#200#) THEN --512 bit! next_reset_eeprom_ctrl_state <= SET_READY; END IF; Gruß Martin