Перейти к содержанию
    

Вано

Участник
  • Постов

    22
  • Зарегистрирован

  • Посещение

Весь контент Вано


  1. Уважаемые, если кто-нибудь встречал реализацию этого алгоритма на verilog, ну или на vhdl, поделитель ссылочкой, пожалуйста. Знаю что реализация есть, но пака не могу найти, спасибо.
  2. Путем изучения алгоритмов сжатия без потерь(Хаффмана и Арифметического) и проектов, где они рельно применяются. Я пришел к выводу что RGB поток данных сначала подвергаеется DCT ( Discrete Cosine Transform) и квантизации , а потом уже кодируется кодеками Хаффманом или Арифметическим. Правильно ли я думаю, что это связано с трудностью быстрого построения частотных таблиц, а так же ограничивает входной алфавит для кодирования Хаффманом. Т.е DCT делается перед применением кодера, т.к. упорядочивает поток данных? Если же просто кодировать поток данных , например, который поступает в буфер на 256 мест, затем надо строить таблицу частот, тогда вопрос как быстро отсортировать этот буфер, чтобы построить бинарное дерево? Ведь потребуется как минимум 128 циклов пересылок?
  3. Нашел уже 3 варианта имплементации huffman алгоритма. Неужели ни у кого нет Арифметического? Народ, поделитесь. Можем обменяться на очень интересные реализации.
  4. рефернсного нет, а свой есть, в нескольких реализациях можете попробывать попросить у атеме либу для симуляции :) Не совсем понял про "либу для симуляции", а у Вас можно попросить какую-нибудь verilog реализацию? у атеме можно получить скомпилированную либу для моделирования. думаю что код вы не найдете нигде, мы свои реализации тоже не рассылаем. Custom Development возможен, но он стоит денег :)) Пасибо за ответ, думаю найти можно все же, хаффман же есть, почему бы арифметике не быть , а если не льзя то придется писать значит с нуля, что тоже приемлимо.
  5. рефернсного нет, а свой есть, в нескольких реализациях можете попробывать попросить у атеме либу для симуляции :) Не совсем понял про "либу для симуляции", а у Вас можно попросить какую-нибудь verilog реализацию?
  6. Может у кого-нибудь есть референсы на имплементацию "Арифметического алгоритма" компрессии? Реализацию алгоритма Хаффмана я нашел, может кто-нибудь встречал реализацию еще и арифметического алгоритма?
  7. На половину длительности тактового импульса? Или на половину периода тактового импульса? Под длительностью имею в виду периода.
  8. Это схоже с проблемой деления на логике тактовой НЕ на степень 2-ки (например 3) А самый очевидный вариант синтезируемой задержки - использовать 2-ух кратную тактовую (на PLL) :) К сожалению pll трогать нельзя, необходимо программно сделать без использования настроек генератора. Черт побери, сигнал возникает на пол таката раньше , чем нужно, может быть есть еще мнения?
  9. Подскажите, как в verilog -е сделать задержку сигнала на половину длительности тактового импульса?
  10. assign ууу = xxx; И всё!!!!! По-моему, вы ошибаетесь. always @( fas_ff_fe or fas_db ) if(fas_ff_fe) begin assign yyy=xxx; end Это работать будет наобхорот , если xxx=yyy, а обратно не будет, в этом и проблема что переменной wire не присвоишь assign переменную типа reg, наоборот можно.
  11. Собственно вопрос в следующем: Как можно присвоить переменной типа wire значение переменной типа reg т.е. reg[15:0] xxx; wire[15:0] yyy; reg g; как ууу = xxx ? 1) я использую метод с применением bufif0.т.е. в блоке объявления переменных bufif0( yyy, xxx, g); Затем в task -ах я просто присваививаю значения переменной xxx и автоматический у меня инициализируется переменная типа wire , т.е ууу . 2) провести это присвоение в рамках процесса always , используя assign, а еще как?
  12. К сожалению на wire заменить reg нельзя, т.к. у меня еще кроме этого куча функций создана, которые нужно будет переписывать, они работают с переменными как с регистром.
  13. Действительно в глазах рябит, поэтому и ищу способ заменить эти все bufif0 для каждого разряда на какие-нибудь циклы. С компиляцией verilog кода проблем нет, (код компилирую в modelsimSE 6.0с), затем создаю временную диаграмму и при нажатии на старт симуляции modelsim жостко вылетает, т.е. симуляция не запускается, а с компилятором все в порядке. Собственно мне нужно упростить вот это: bufif0 ( ide0_data [ 0 ], ide0_datar [ 0 ], ide0_e ) ; bufif0 ( ide0_data [ 1 ], ide0_datar [ 1 ], ide0_e ) ; bufif0 ( ide0_data [ 2 ], ide0_datar [ 2 ], ide0_e ) ; bufif0 ( ide0_data [ 3 ], ide0_datar [ 3 ], ide0_e ) ; bufif0 ( ide0_data [ 4 ], ide0_datar [ 4 ], ide0_e ) ; bufif0 ( ide0_data [ 5 ], ide0_datar [ 5 ], ide0_e ) ; bufif0 ( ide0_data [ 6 ], ide0_datar [ 6 ], ide0_e ) ; bufif0 ( ide0_data [ 7 ], ide0_datar [ 7 ], ide0_e ) ; bufif0 ( ide0_data [ 8 ], ide0_datar [ 8 ], ide0_e ) ; bufif0 ( ide0_data [ 9 ], ide0_datar [ 9 ], ide0_e ) ; bufif0 ( ide0_data [ 10 ], ide0_datar [ 10 ], ide0_e ) ; bufif0 ( ide0_data [ 11 ], ide0_datar [ 11 ], ide0_e ) ; bufif0 ( ide0_data [ 12 ], ide0_datar [ 12 ], ide0_e ) ; bufif0 ( ide0_data [ 13 ], ide0_datar [ 13 ], ide0_e ) ; bufif0 ( ide0_data [ 14 ], ide0_datar [ 14 ], ide0_e ) ; bufif0 ( ide0_data [ 15 ], ide0_datar [ 15 ], ide0_e ) ; Простым циклом нельзя, т.к. это блок объявления примитивов , связей,переменных вместо этого создал это: generate for (bi=0; bi<16; bi=bi+1) begin:bit bufif0 ( ide0_data[ bi ] , ide0_datar[ bi ] , ide0_e ) ; end endgenerate НО этот код, не симулируется. Код компилируется и симулируется в quartus 6.0c
  14. Собственно задача состоит в том чтобы упростить следующий код: module SWSIM () ; ----///------------- //--------------------------------------------------------------------- // Define buffered versions of INOUT signals //--------------------------------------------------------------------- integer regAdr ; integer regAdr2; integer i; //--------------------------------- reg [ 15 : 0 ] adr ; reg ade ; reg enb ; genvar bi; bufif0 ( ad [ 0 ], adr [ 0 ], ade ) ; bufif0 ( ad [ 1 ], adr [ 1 ], ade ) ; bufif0 ( ad [ 2 ], adr [ 2 ], ade ) ; bufif0 ( ad [ 3 ], adr [ 3 ], ade ) ; bufif0 ( ad [ 4 ], adr [ 4 ], ade ) ; bufif0 ( ad [ 5 ], adr [ 5 ], ade ) ; bufif0 ( ad [ 6 ], adr [ 6 ], ade ) ; bufif0 ( ad [ 7 ], adr [ 7 ], ade ) ; bufif0 ( ad [ 8 ], adr [ 8 ], ade ) ; bufif0 ( ad [ 9 ], adr [ 9 ], ade ) ; bufif0 ( ad [ 10 ], adr [ 10 ], ade ) ; bufif0 ( ad [ 11 ], adr [ 11 ], ade ) ; bufif0 ( ad [ 12 ], adr [ 12 ], ade ) ; bufif0 ( ad [ 13 ], adr [ 13 ], ade ) ; bufif0 ( ad [ 14 ], adr [ 14 ], ade ) ; bufif0 ( ad [ 15 ], adr [ 15 ], ade ) ; reg [ 15 : 0 ] fas_dbr ; reg fas_dbe ; bufif0 ( fas_db [ 0 ], fas_dbr [ 0 ], fas_ndboe ) ; bufif0 ( fas_db [ 1 ], fas_dbr [ 1 ], fas_ndboe ) ; bufif0 ( fas_db [ 2 ], fas_dbr [ 2 ], fas_ndboe ) ; bufif0 ( fas_db [ 3 ], fas_dbr [ 3 ], fas_ndboe ) ; bufif0 ( fas_db [ 4 ], fas_dbr [ 4 ], fas_ndboe ) ; bufif0 ( fas_db [ 5 ], fas_dbr [ 5 ], fas_ndboe ) ; bufif0 ( fas_db [ 6 ], fas_dbr [ 6 ], fas_ndboe ) ; bufif0 ( fas_db [ 7 ], fas_dbr [ 7 ], fas_ndboe ) ; bufif0 ( fas_db [ 8 ], fas_dbr [ 8 ], fas_ndboe ) ; bufif0 ( fas_db [ 9 ], fas_dbr [ 9 ], fas_ndboe ) ; bufif0 ( fas_db [ 10 ], fas_dbr [ 10 ], fas_ndboe ) ; bufif0 ( fas_db [ 11 ], fas_dbr [ 11 ], fas_ndboe ) ; bufif0 ( fas_db [ 12 ], fas_dbr [ 12 ], fas_ndboe ) ; bufif0 ( fas_db [ 13 ], fas_dbr [ 13 ], fas_ndboe ) ; bufif0 ( fas_db [ 14 ], fas_dbr [ 14 ], fas_ndboe ) ; bufif0 ( fas_db [ 15 ], fas_dbr [ 15 ], fas_ndboe ) ; reg [ 15 : 0 ] ide0_datar, ide1_datar, ide2_datar ; reg [ 15 : 0 ] ide3_datar, ide4_datar, ide5_datar ; reg [ 15 : 0 ] ide6_datar, ide7_datar, ide8_datar ; reg [ 15 : 0 ] ide9_datar; reg ide0_e, ide1_e, ide2_e, ide3_e, ide4_e, ide5_e ; reg ide6_e, ide7_e, ide8_e, ide9_e ; bufif0 ( ide0_data [ 0 ], ide0_datar [ 0 ], ide0_e ) ; bufif0 ( ide0_data [ 1 ], ide0_datar [ 1 ], ide0_e ) ; bufif0 ( ide0_data [ 2 ], ide0_datar [ 2 ], ide0_e ) ; bufif0 ( ide0_data [ 3 ], ide0_datar [ 3 ], ide0_e ) ; bufif0 ( ide0_data [ 4 ], ide0_datar [ 4 ], ide0_e ) ; bufif0 ( ide0_data [ 5 ], ide0_datar [ 5 ], ide0_e ) ; bufif0 ( ide0_data [ 6 ], ide0_datar [ 6 ], ide0_e ) ; bufif0 ( ide0_data [ 7 ], ide0_datar [ 7 ], ide0_e ) ; bufif0 ( ide0_data [ 8 ], ide0_datar [ 8 ], ide0_e ) ; bufif0 ( ide0_data [ 9 ], ide0_datar [ 9 ], ide0_e ) ; bufif0 ( ide0_data [ 10 ], ide0_datar [ 10 ], ide0_e ) ; bufif0 ( ide0_data [ 11 ], ide0_datar [ 11 ], ide0_e ) ; bufif0 ( ide0_data [ 12 ], ide0_datar [ 12 ], ide0_e ) ; bufif0 ( ide0_data [ 13 ], ide0_datar [ 13 ], ide0_e ) ; bufif0 ( ide0_data [ 14 ], ide0_datar [ 14 ], ide0_e ) ; bufif0 ( ide0_data [ 15 ], ide0_datar [ 15 ], ide0_e ) ; bufif0 ( ide1_data [ 0 ], ide1_datar [ 0 ], ide1_e ) ; bufif0 ( ide1_data [ 1 ], ide1_datar [ 1 ], ide1_e ) ; bufif0 ( ide1_data [ 2 ], ide1_datar [ 2 ], ide1_e ) ; bufif0 ( ide1_data [ 3 ], ide1_datar [ 3 ], ide1_e ) ; bufif0 ( ide1_data [ 4 ], ide1_datar [ 4 ], ide1_e ) ; bufif0 ( ide1_data [ 5 ], ide1_datar [ 5 ], ide1_e ) ; bufif0 ( ide1_data [ 6 ], ide1_datar [ 6 ], ide1_e ) ; bufif0 ( ide1_data [ 7 ], ide1_datar [ 7 ], ide1_e ) ; bufif0 ( ide1_data [ 8 ], ide1_datar [ 8 ], ide1_e ) ; bufif0 ( ide1_data [ 9 ], ide1_datar [ 9 ], ide1_e ) ; bufif0 ( ide1_data [ 10 ], ide1_datar [ 10 ], ide1_e ) ; bufif0 ( ide1_data [ 11 ], ide1_datar [ 11 ], ide1_e ) ; bufif0 ( ide1_data [ 12 ], ide1_datar [ 12 ], ide1_e ) ; bufif0 ( ide1_data [ 13 ], ide1_datar [ 13 ], ide1_e ) ; bufif0 ( ide1_data [ 14 ], ide1_datar [ 14 ], ide1_e ) ; bufif0 ( ide1_data [ 15 ], ide1_datar [ 15 ], ide1_e ) ; bufif0 ( ide2_data [ 0 ], ide2_datar [ 0 ], ide2_e ) ; bufif0 ( ide2_data [ 1 ], ide2_datar [ 1 ], ide2_e ) ; bufif0 ( ide2_data [ 2 ], ide2_datar [ 2 ], ide2_e ) ; bufif0 ( ide2_data [ 3 ], ide2_datar [ 3 ], ide2_e ) ; bufif0 ( ide2_data [ 4 ], ide2_datar [ 4 ], ide2_e ) ; bufif0 ( ide2_data [ 5 ], ide2_datar [ 5 ], ide2_e ) ; bufif0 ( ide2_data [ 6 ], ide2_datar [ 6 ], ide2_e ) ; bufif0 ( ide2_data [ 7 ], ide2_datar [ 7 ], ide2_e ) ; bufif0 ( ide2_data [ 8 ], ide2_datar [ 8 ], ide2_e ) ; bufif0 ( ide2_data [ 9 ], ide2_datar [ 9 ], ide2_e ) ; bufif0 ( ide2_data [ 10 ], ide2_datar [ 10 ], ide2_e ) ; bufif0 ( ide2_data [ 11 ], ide2_datar [ 11 ], ide2_e ) ; bufif0 ( ide2_data [ 12 ], ide2_datar [ 12 ], ide2_e ) ; bufif0 ( ide2_data [ 13 ], ide2_datar [ 13 ], ide2_e ) ; bufif0 ( ide2_data [ 14 ], ide2_datar [ 14 ], ide2_e ) ; bufif0 ( ide2_data [ 15 ], ide2_datar [ 15 ], ide2_e ) ; bufif0 ( ide3_data [ 0 ], ide3_datar [ 0 ], ide3_e ) ; bufif0 ( ide3_data [ 1 ], ide3_datar [ 1 ], ide3_e ) ; bufif0 ( ide3_data [ 2 ], ide3_datar [ 2 ], ide3_e ) ; bufif0 ( ide3_data [ 3 ], ide3_datar [ 3 ], ide3_e ) ; bufif0 ( ide3_data [ 4 ], ide3_datar [ 4 ], ide3_e ) ; bufif0 ( ide3_data [ 5 ], ide3_datar [ 5 ], ide3_e ) ; bufif0 ( ide3_data [ 6 ], ide3_datar [ 6 ], ide3_e ) ; bufif0 ( ide3_data [ 7 ], ide3_datar [ 7 ], ide3_e ) ; bufif0 ( ide3_data [ 8 ], ide3_datar [ 8 ], ide3_e ) ; bufif0 ( ide3_data [ 9 ], ide3_datar [ 9 ], ide3_e ) ; bufif0 ( ide3_data [ 10 ], ide3_datar [ 10 ], ide3_e ) ; bufif0 ( ide3_data [ 11 ], ide3_datar [ 11 ], ide3_e ) ; bufif0 ( ide3_data [ 12 ], ide3_datar [ 12 ], ide3_e ) ; bufif0 ( ide3_data [ 13 ], ide3_datar [ 13 ], ide3_e ) ; bufif0 ( ide3_data [ 14 ], ide3_datar [ 14 ], ide3_e ) ; bufif0 ( ide3_data [ 15 ], ide3_datar [ 15 ], ide3_e ) ; bufif0 ( ide4_data [ 0 ], ide4_datar [ 0 ], ide4_e ) ; bufif0 ( ide4_data [ 1 ], ide4_datar [ 1 ], ide4_e ) ; bufif0 ( ide4_data [ 2 ], ide4_datar [ 2 ], ide4_e ) ; bufif0 ( ide4_data [ 3 ], ide4_datar [ 3 ], ide4_e ) ; bufif0 ( ide4_data [ 4 ], ide4_datar [ 4 ], ide4_e ) ; bufif0 ( ide4_data [ 5 ], ide4_datar [ 5 ], ide4_e ) ; bufif0 ( ide4_data [ 6 ], ide4_datar [ 6 ], ide4_e ) ; bufif0 ( ide4_data [ 7 ], ide4_datar [ 7 ], ide4_e ) ; bufif0 ( ide4_data [ 8 ], ide4_datar [ 8 ], ide4_e ) ; bufif0 ( ide4_data [ 9 ], ide4_datar [ 9 ], ide4_e ) ; bufif0 ( ide4_data [ 10 ], ide4_datar [ 10 ], ide4_e ) ; bufif0 ( ide4_data [ 11 ], ide4_datar [ 11 ], ide4_e ) ; bufif0 ( ide4_data [ 12 ], ide4_datar [ 12 ], ide4_e ) ; bufif0 ( ide4_data [ 13 ], ide4_datar [ 13 ], ide4_e ) ; bufif0 ( ide4_data [ 14 ], ide4_datar [ 14 ], ide4_e ) ; bufif0 ( ide4_data [ 15 ], ide4_datar [ 15 ], ide4_e ) ; bufif0 ( ide5_data [ 0 ], ide5_datar [ 0 ], ide5_e ) ; bufif0 ( ide5_data [ 1 ], ide5_datar [ 1 ], ide5_e ) ; bufif0 ( ide5_data [ 2 ], ide5_datar [ 2 ], ide5_e ) ; bufif0 ( ide5_data [ 3 ], ide5_datar [ 3 ], ide5_e ) ; bufif0 ( ide5_data [ 4 ], ide5_datar [ 4 ], ide5_e ) ; bufif0 ( ide5_data [ 5 ], ide5_datar [ 5 ], ide5_e ) ; bufif0 ( ide5_data [ 6 ], ide5_datar [ 6 ], ide5_e ) ; bufif0 ( ide5_data [ 7 ], ide5_datar [ 7 ], ide5_e ) ; bufif0 ( ide5_data [ 8 ], ide5_datar [ 8 ], ide5_e ) ; bufif0 ( ide5_data [ 9 ], ide5_datar [ 9 ], ide5_e ) ; bufif0 ( ide5_data [ 10 ], ide5_datar [ 10 ], ide5_e ) ; bufif0 ( ide5_data [ 11 ], ide5_datar [ 11 ], ide5_e ) ; bufif0 ( ide5_data [ 12 ], ide5_datar [ 12 ], ide5_e ) ; bufif0 ( ide5_data [ 13 ], ide5_datar [ 13 ], ide5_e ) ; bufif0 ( ide5_data [ 14 ], ide5_datar [ 14 ], ide5_e ) ; bufif0 ( ide5_data [ 15 ], ide5_datar [ 15 ], ide5_e ) ; bufif0 ( ide6_data [ 0 ], ide6_datar [ 0 ], ide6_e ) ; bufif0 ( ide6_data [ 1 ], ide6_datar [ 1 ], ide6_e ) ; bufif0 ( ide6_data [ 2 ], ide6_datar [ 2 ], ide6_e ) ; bufif0 ( ide6_data [ 3 ], ide6_datar [ 3 ], ide6_e ) ; bufif0 ( ide6_data [ 4 ], ide6_datar [ 4 ], ide6_e ) ; bufif0 ( ide6_data [ 5 ], ide6_datar [ 5 ], ide6_e ) ; bufif0 ( ide6_data [ 6 ], ide6_datar [ 6 ], ide6_e ) ; bufif0 ( ide6_data [ 7 ], ide6_datar [ 7 ], ide6_e ) ; bufif0 ( ide6_data [ 8 ], ide6_datar [ 8 ], ide6_e ) ; bufif0 ( ide6_data [ 9 ], ide6_datar [ 9 ], ide6_e ) ; bufif0 ( ide6_data [ 10 ], ide6_datar [ 10 ], ide6_e ) ; bufif0 ( ide6_data [ 11 ], ide6_datar [ 11 ], ide6_e ) ; bufif0 ( ide6_data [ 12 ], ide6_datar [ 12 ], ide6_e ) ; bufif0 ( ide6_data [ 13 ], ide6_datar [ 13 ], ide6_e ) ; bufif0 ( ide6_data [ 14 ], ide6_datar [ 14 ], ide6_e ) ; bufif0 ( ide6_data [ 15 ], ide6_datar [ 15 ], ide6_e ) ; bufif0 ( ide7_data [ 0 ], ide7_datar [ 0 ], ide7_e ) ; bufif0 ( ide7_data [ 1 ], ide7_datar [ 1 ], ide7_e ) ; bufif0 ( ide7_data [ 2 ], ide7_datar [ 2 ], ide7_e ) ; bufif0 ( ide7_data [ 3 ], ide7_datar [ 3 ], ide7_e ) ; bufif0 ( ide7_data [ 4 ], ide7_datar [ 4 ], ide7_e ) ; bufif0 ( ide7_data [ 5 ], ide7_datar [ 5 ], ide7_e ) ; bufif0 ( ide7_data [ 6 ], ide7_datar [ 6 ], ide7_e ) ; bufif0 ( ide7_data [ 7 ], ide7_datar [ 7 ], ide7_e ) ; bufif0 ( ide7_data [ 8 ], ide7_datar [ 8 ], ide7_e ) ; bufif0 ( ide7_data [ 9 ], ide7_datar [ 9 ], ide7_e ) ; bufif0 ( ide7_data [ 10 ], ide7_datar [ 10 ], ide7_e ) ; bufif0 ( ide7_data [ 11 ], ide7_datar [ 11 ], ide7_e ) ; bufif0 ( ide7_data [ 12 ], ide7_datar [ 12 ], ide7_e ) ; bufif0 ( ide7_data [ 13 ], ide7_datar [ 13 ], ide7_e ) ; bufif0 ( ide7_data [ 14 ], ide7_datar [ 14 ], ide7_e ) ; bufif0 ( ide7_data [ 15 ], ide7_datar [ 15 ], ide7_e ) ; bufif0 ( ide8_data [ 0 ], ide8_datar [ 0 ], ide8_e ) ; bufif0 ( ide8_data [ 1 ], ide8_datar [ 1 ], ide8_e ) ; bufif0 ( ide8_data [ 2 ], ide8_datar [ 2 ], ide8_e ) ; bufif0 ( ide8_data [ 3 ], ide8_datar [ 3 ], ide8_e ) ; bufif0 ( ide8_data [ 4 ], ide8_datar [ 4 ], ide8_e ) ; bufif0 ( ide8_data [ 5 ], ide8_datar [ 5 ], ide8_e ) ; bufif0 ( ide8_data [ 6 ], ide8_datar [ 6 ], ide8_e ) ; bufif0 ( ide8_data [ 7 ], ide8_datar [ 7 ], ide8_e ) ; bufif0 ( ide8_data [ 8 ], ide8_datar [ 8 ], ide8_e ) ; bufif0 ( ide8_data [ 9 ], ide8_datar [ 9 ], ide8_e ) ; bufif0 ( ide8_data [ 10 ], ide8_datar [ 10 ], ide8_e ) ; bufif0 ( ide8_data [ 11 ], ide8_datar [ 11 ], ide8_e ) ; bufif0 ( ide8_data [ 12 ], ide8_datar [ 12 ], ide8_e ) ; bufif0 ( ide8_data [ 13 ], ide8_datar [ 13 ], ide8_e ) ; bufif0 ( ide8_data [ 14 ], ide8_datar [ 14 ], ide8_e ) ; bufif0 ( ide8_data [ 15 ], ide8_datar [ 15 ], ide8_e ) ; bufif0 ( ide9_data [ 0 ], ide9_datar [ 0 ], ide9_e ) ; bufif0 ( ide9_data [ 1 ], ide9_datar [ 1 ], ide9_e ) ; bufif0 ( ide9_data [ 2 ], ide9_datar [ 2 ], ide9_e ) ; bufif0 ( ide9_data [ 3 ], ide9_datar [ 3 ], ide9_e ) ; bufif0 ( ide9_data [ 4 ], ide9_datar [ 4 ], ide9_e ) ; bufif0 ( ide9_data [ 5 ], ide9_datar [ 5 ], ide9_e ) ; bufif0 ( ide9_data [ 6 ], ide9_datar [ 6 ], ide9_e ) ; bufif0 ( ide9_data [ 7 ], ide9_datar [ 7 ], ide9_e ) ; bufif0 ( ide9_data [ 8 ], ide9_datar [ 8 ], ide9_e ) ; bufif0 ( ide9_data [ 9 ], ide9_datar [ 9 ], ide9_e ) ; bufif0 ( ide9_data [ 10 ], ide9_datar [ 10 ], ide9_e ) ; bufif0 ( ide9_data [ 11 ], ide9_datar [ 11 ], ide9_e ) ; bufif0 ( ide9_data [ 12 ], ide9_datar [ 12 ], ide9_e ) ; bufif0 ( ide9_data [ 13 ], ide9_datar [ 13 ], ide9_e ) ; bufif0 ( ide9_data [ 14 ], ide9_datar [ 14 ], ide9_e ) ; bufif0 ( ide9_data [ 15 ], ide9_datar [ 15 ], ide9_e ) ; Cобственно вместо кода выше написал следующий код: generate for (bi=0; bi<16; bi=bi+1) begin:bit bufif0 ( ad[ bi ] , adr [ bi ] , ade ) ; bufif0 ( fas_db[ bi ] , fas_dbr[ bi ] , fas_ndboe ) ; bufif0 ( ide0_data[ bi ] , ide0_datar[ bi ] , ide0_e ) ; bufif0 ( ide1_data[ bi ] , ide1_datar[ bi ] , ide1_e ) ; bufif0 ( ide2_data[ bi ] , ide2_datar[ bi ] , ide2_e ) ; bufif0 ( ide3_data[ bi ] , ide3_datar[ bi ] , ide3_e ) ; bufif0 ( ide4_data[ bi ] , ide4_datar[ bi ] , ide4_e ) ; bufif0 ( ide5_data[ bi ] , ide5_datar[ bi ] , ide5_e ) ; bufif0 ( ide6_data[ bi ] , ide6_datar[ bi ] , ide6_e ) ; bufif0 ( ide7_data[ bi ] , ide7_datar[ bi ] , ide7_e ) ; bufif0 ( ide8_data[ bi ] , ide8_datar[ bi ] , ide8_e ) ; bufif0 ( ide9_data[ bi ] , ide9_datar[ bi ] , ide9_e ) ; end endgenerate Verilog его понимает , а MOdelsim жестко вылетает. Как можно еще избавиться от этих bufif0, как сократить код? //--------------------------------------------------------------------- // INITIAL block //--------------------------------------------------------------------- initial begin
  15. Пасибо за помощь, с открытием и получение данных разобрался . Теперь остались $feof, $strobe_compare где вообще почитать про функции работы с файлами в verilog. Скиньте ссылочку , плиз !
  16. При компиляции не ругается. При симуляции в modelsim 6.0c выдает следующее: Warning: (vsim-PLI-3003) compare.v(15): [TOFD] - System task or function '$fopenr' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) compare.v(21): [TOFD] - System task or function '$fgets' is not defined. Это облема verilog компилятора modelsima 6.0 , т.к. эти функции должны априорно поддерживаться в modelsim 6.0 или я что то не так делаю, может чего дописать надо?: integer file, r; reg a, b, expect, clock; wire out; reg [8*`MAX_LINE_LENGTH-1:0] line; parameter cycle = 20; initial begin : file_block clock = 0; file = $fopenr("compare.txt"); if (file == `NULL) disable file_block; $display(" Time Stim Expect Output"); // Skip comments r = $fgets(line, `MAX_LINE_LENGTH, file); r = $fgets(line, `MAX_LINE_LENGTH, file); while (!$feof(file)) begin // Wait until rising clock, read stimulus @(posedge clock) r = $fscanf(file, " %b %b %b\n", a, b, expect); // Wait just before the end of cycle to compare #(cycle - 1) $display("%d %b %b %b %b", $stime, a, b, expect, out); $strobe_compare(expect, out); end // while not EOF r = $fcloser(file); $stop; end // initial // Clock generator always #(cycle / 2) clock = !clock; // Circuit under test and #4 (out, a, B); endmodule // compare
  17. В modelsime в опциях ничего такого нет. Как я понимаю modelsim версии выше чем 5.5 уже имеет поддержку функций ввода-вывода, об этом гворит еще и следующее HELP-> Technotes-> vlog_2001 , там первой строкой написано что ModelSim supports the following IEEE 1364-2001 features: o New File I/O tasks, command line args $test$plusargs and $value$plusargs , а на самом деле не понимает при симуляции говорит : Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(15): [TOFD] - System task or function '$fopenr' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(21): [TOFD] - System task or function '$fgets' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(24): [TOFD] - System task or function '$feof' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(33): [TOFD] - System task or function '$strobe_compare' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(36): [TOFD] - System task or function '$fcloser' is not defined. # Region: /compare/file_block # ** Error: (vsim-PLI-3073) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(22): $fgets : Wrong number of arguments. # Region: /compare/file_block Вот что мне и непонятно?!? Почему он априорно имеет поддежку этих функций работы с файлами, а при сиуляции не понимает их . текст проги: `define EOF 32'hFFFF_FFFF `define NULL 0 `define MAX_LINE_LENGTH 1000 module compare; integer file, r; reg a, b, expect, clock; wire out; reg [8*`MAX_LINE_LENGTH-1:0] line; parameter cycle = 20; initial begin : file_block clock = 0; file = $fopenr("compare.txt"); if (file == `NULL) disable file_block; $display(" Time Stim Expect Output"); // Skip comments // r = $fgets(line, `MAX_LINE_LENGTH, file); // r = $fgets(line, `MAX_LINE_LENGTH, file); while (!$feof(file)) begin // Wait until rising clock, read stimulus @(posedge clock) r = $fscanf(file, " %b %b %b\n", a, b, expect); // Wait just before the end of cycle to compare #(cycle - 1) $display("%d %b %b %b %b", $stime, a, b, expect, out); $strobe_compare(expect, out); end // while not EOF r = $fcloser(file); $stop; end // initial // Clock generator always #(cycle / 2) clock = !clock; // Circuit under test and #4 (out, a, b); endmodule // compare Может кто у себя попробует отсимулить эту прогу? compare.txt compare.rar
  18. Моделсим 6.0c не понимает функций $fgets,$fscanf и т.д. без подключения доп модуля, т.е. по видимому его компилятор или транслятор не имеет поддержки verilog 2001. Для подключения этих функций необходимо подключить модуль fileio.c к modelsim. Как это сделать ? Или вообще общий случай : как использовать какие-нибудь функции , описанные где-нибудь в сишном файле, чтобы при симулировании modelsim понимал их. Если кто -нибудь симулировал чтение файлов или просто подключал сишные функции к verilog-у в modelsime , а затем использовал их при симуляции(это очень важно, компилить то он компилит , а симулить не хочет, говорит не понимаю) то подскажите!
  19. По моему я нашел assignments ---> back annotate assignments потом выбираю то что мне надо оставить типа 1) device assignment 2) pin&device 3) pin &call& device и т.д. Кто нибудь может подтвердить это то или нет?
  20. После компиляции кода в quartuse 5 я получаю распиновку на выбранном device. Где в квартусе опция, которая фиксирует положение пина, чтобы при следующем изменении и компиляции тогоже кода, положение пинов не менялось?
  21. Подскажите, плиз, как из файла читать что-нибудь?
×
×
  • Создать...