Jump to content

    

andrew_b

Свой
  • Content Count

    2414
  • Joined

  • Last visited

Community Reputation

0 Обычный

1 Follower

About andrew_b

  • Rank
    Гуру

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

8148 profile views
  1. Никак. А где, по-вашему, должны создаваться все эти файлы в процессе компиляции?
  2. string -- это массив. Вы должны задать длину строки при её определении: variable outdata : STRING (1 to 128); Если длина неизвестна, тогда надо использовать указатели. Сначала рассчитать длину строки, а потом создать её динамически. function raw_format_slv_hex(slv : STD_LOGIC_VECTOR) return LINE is variable Value : STD_LOGIC_VECTOR(4*div_ceil(slv'length, 4) - 1 downto 0); variable Digit : STD_LOGIC_VECTOR(3 downto 0); variable Result : LINE; variable j : NATURAL; begin Value := STD_LOGIC_VECTOR (resize(unsigned(slv), Value'length)); j := 0; Result := new string (1 to div_ceil(slv'length, 4)); for i in Result'reverse_range loop Digit := Value((j * 4) + 3 downto (j * 4)); Result(i) := to_HexChar(unsigned(Digit)); j := j + 1; end loop; return Result; end function; ... write_to_file0: process(all) variable outdata_line: line; variable outdata : line; file output_data_file: text open write_mode is "final_out.txt"; begin if rising_edge(clk) then if huffman_bitsream_final_out.valid = '1' then outdata := raw_format_slv_hex( STD_LOGIC_VECTOR (bitsream_final_out.bitstream)); write(outdata_line,outdata.all); writeline(output_data_file,outdata_line); Deallocate (outdata); end if; end if; end process; С другой стороны, а зачем тут переменная? write_to_file0: process(all) variable outdata_line: line; file output_data_file: text open write_mode is "final_out.txt"; begin if rising_edge(clk) then if huffman_bitsream_final_out.valid = '1' then write(outdata_line, raw_format_slv_hex( STD_LOGIC_VECTOR (bitsream_final_out.bitstream))); writeline(output_data_file,outdata_line); end if; end if; end process;
  3. Ядра в BD и сам BD синтезируются до синтеза RTL-ной части проекта. На этом этапе никакие дефайны никуда не подставляются. Вроде так.
  4. Нигде не надо искать. В коде используете только плюсовый вывод. В qsf описываете его как lvds. Второй вывод Квартус добавит сам.
  5. Ответ был дан в третьем посте. Чётко и правильно.
  6. Вот это некропостинг. Хорошо отвечать на вопрос 16-летней давности.
  7. У вам что-то очень критичное по времени по этому интерфейсу гонится? Растяните WE и RD на один или два такта.
  8. Это неправильно. Вы совершили типичную новичковую ошибку. Выделяете фронт we. По этому импульсу клоком защёлкиваете всю шину: ce, addr, data. И только потом декодируете адрес и разносите данные по регистрам. Ну и обконстрейнить надо, конечно.
  9. Какие латчи? process (EMIF_nWE) begin if (rising_edge (EMIF_nWE)) then Data <= EMIF_D; end if; end;
  10. Ничего там не порождается. Запись производится по фронту WE с последующим переносом на рабочую тактовую.
  11. И вы сразу начали компилировать программы, толком не разобравшись с системой. Далеко не факт. Новых версий в стабильных репозитариях никто не обещает. Есть. make uninstall.
  12. Как говорили раньше, "лёгким движением make install пакетный дистрибутив превращается в Слаку". Вам надо собрать пакет, а не мейкинсталить. Почему вы решили, что он установлен? Раз не видите, значит, не установлен. Не «вероятно», а абсолютно точно. Про всё, что устанавлено мимо пакетного менеджера, этот самый пакетный менеджер не в курсе. Запросто. rm -rf И ещё один совет: не надо постить текст картинкой. В мире Линукс это не принято. Текст это текст.