Jump to content

    

Halfback

Участник
  • Content Count

    378
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Halfback

  • Rank
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

3699 profile views
  1. Не поделитесь ссылкой или как в гугле поискать? Пока в поисковике вижу только Altera DSP Builder, но как я понимаю это не то что мне нужно... обратил. У меня для Cyclone III (Quartus 13.0.1) нет такого примера, но есть вот такой темплейт для DSP Features/Sum of Four Multipliers (Stratix V, Arria-V, Cyclone-V and later device families) Мне не совсем понятно чем эта реализация отличается от моей. Если разница есть то ткните пожалуйста. есть еще вот такой темплейт Sums of Multipliers (я так понял для плис помедленнее). Я таким образом тоже реализовывал - умножение с суммированием в виде отдельного модуля, где то-же самое делалось по клоку. Но ситуация со слеками никак не изменилась. Еще непонятно - целенаправлено ли скобки т.о. расставлены или нет.
  2. Всем доброго времени суток! Реализовал полифазный децимирующий фильтр на 70 точек (на выходе каждая 10-я точка относительно входа), в моделсиме показывает всё как надо, в железе на столе тоже работает, но квартус валит слэки по Setup (Slow 1200mV 0C и +85С, по Fast - слэков нет). Причем в sdc когда ставлю 80МГц - слэков нет, на 100МГц еже есть. Буду очень признателен если поможете найти плохое место в коде. Может есть возможность что-то поправить/улучшить?
  3. разобрался, то что LVDS имеет только 5578ТС104 и 5578ТС064. ВОпрос к счастливым обладателям 5578ТС104 - возможна ли работа LVDS на прием на скорости 120МГц ? ЧТо с регистрами LVDS приемника? Будет всё работать как в Cyclone III ?
  4. Всем доброго дня. Скажите пожалуйста, плис 5578ТС084 имеет LVDS ? И еще вопрос в догонку - где можно взять документацию на 5578ТС084 ? Надо платку под эту плис спроектировать...
  5. это не требования а мои личные полежания для удобства работы с моделсим, чтобы каждый раз при вызове моделсим не тратить время на вышеописанные рутинные операции.
  6. есть еще мелкие вопросики по modelsim. Есть файлик с модулем mod.v и его соотв. тесбенч mod_tb.v Что нужно написать в mod_tb.v чтобы 1.График сразу стал ZoomFull 2.Определенные регистры, обьявленные как беззнаковые, показывались как Decimal а не Bin (почему -то так по умолчанию).
  7. Господа, спасибо за помощь!!! Считываю файлы вот так. Проверено, работает.
  8. варантов я так понял два, $readmemh и $readmemb Первому значения в HEX надо скормить, второму в бинари А есть вариант считать и запихать в массив типа вот такого текстового файла? Просто переделывать 16800 точек в другую запись не очень хочется. -2,-1,13,23,16,12,7,0,8,1,-18,-16,-11,-10,-3,6
  9. да, дейтсвительно, пятница.... Тогда вопрос сразу - моделсим начал орать что неправильно декларировал массивы I_value Q_value. А как правильно? И еще вопрос - функция чтения массива из файла, допустим, вот такя $readmemb("dI.txt", I_value); по какому пути будет этот файл искать? Сунул dI.txt туда же где и файл тесбенча -ан нет, пишет * Warning: (vsim-7) Failed to open readmem file "dI.txt" in read mode. # # No such file or directory. (errno = ENOENT)
  10. Всем доброго времени суток Столкнулся с непонятно проблемой Ругается на строку integer i; Пишет вот что Error .... near "integer": syntax error, unexpected integer, expecting ';' or ',' Error .... (vlog-2730) Undefined variable: 'i'. Почему - мне не понятно. Буду благодарен за пояснения
  11. тогда так ;) outdata_reg <= ((indata + (32'd1<<31)) >> 16) - (16'd1<<15)+indata[31];
  12. Да, Вы правы. чтобы был "0" надо прибавить "1". outdata_reg <= ((indata + (32'd1<<31)) >> 16) - (16'd1<<15)+1;
  13. des00 Спасибо, интересно. Посмотрев Ваш код я не понял почему Вы так делаете outdata = indata >>> 8; а не так outdata = indata >> 8;
  14. на все отрицательные числа от -1 до -65355 результат будет "-1" а д.б. "0". кому это не критично - скорее всего так и делают.
  15. Всем доброго дня. Надо по сути 32-разрядное знаковое число сократить до 16-разрядного знакового. по сути это будет outdata_reg <= indata/65536; но поскольку на младших циклонах знак деления штука не экономная то написал так: module conv_sign_32to16 ( input clk, input signed [31:0] indata, output signed [15:0] outdata ); reg [15:0] outdata_reg; always @ (posedge clk) begin outdata_reg <= ((indata + (32'd1<<31)) >> 16) - (16'd1<<15); end //always assign outdata = outdata_reg; endmodule может есть способ элегантнее? Заранее спасибо.