Jump to content

    

ysmat

Участник*
  • Content Count

    59
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ysmat

  • Rank
    Участник
  1. ну если с mode[7:0]; особых проблем нет я потом в avr переверну то как сделать это TRIG[0:38] <= TRIG[1:39]; такая же проблема я вобще не професионал и вряд ли им стану восновном делаю для себя разные девайсы типа хобби и все но на мой субективный взгяд верилог тяжелый язык для новичка тут надо точно знать что как делаеться в соседней ветке про управляемый гребенчатый фильтр где нужно сделать вычисляемый отвод от цепочки регистров та конструкция через for что я везде ставил оказалось не работает еслиб не помощь я б решения не нашел по поводу разнообразия полностью согласен нужен один стандарт на язык програмирования ну понятно что отличия все равно будут но одни и те-же по смыслу функции очень желательно чтоб везде были одинаковыми например фигурные скобки {} а здесь begin и end зачем так сделали непонятно вобщем решил не связываться с for вместо TRIG[0:38] <= TRIG[1:39]; Код           TX <= TRIG[0];           TRIG[0] <= TRIG[1];           TRIG[1] <= TRIG[2];           TRIG[2] <= TRIG[3];           TRIG[3] <= TRIG[4];           TRIG[4] <= TRIG[5];           TRIG[5] <= TRIG[6];           TRIG[6] <= TRIG[7];           TRIG[7] <= TRIG[8];           TRIG[8] <= TRIG[9];           TRIG[9] <= TRIG[10];           TRIG[10] <= TRIG[11];           TRIG[11] <= TRIG[12];           TRIG[12] <= TRIG[13];           TRIG[13] <= TRIG[14];           TRIG[14] <= TRIG[15];           TRIG[15] <= TRIG[16];                      TRIG[16] <= TRIG[17];           TRIG[17] <= TRIG[18];           TRIG[18] <= TRIG[19];           TRIG[19] <= TRIG[20];           TRIG[20] <= TRIG[21];           TRIG[21] <= TRIG[22];           TRIG[22] <= TRIG[23];           TRIG[23] <= TRIG[24];           TRIG[24] <= TRIG[25];           TRIG[25] <= TRIG[26];           TRIG[26] <= TRIG[27];           TRIG[27] <= TRIG[28];           TRIG[28] <= TRIG[29];           TRIG[29] <= TRIG[30];           TRIG[30] <= TRIG[31];                      TRIG[31] <= TRIG[32];           TRIG[32] <= TRIG[33];           TRIG[33] <= TRIG[34];           TRIG[34] <= TRIG[35];           TRIG[35] <= TRIG[36];           TRIG[36] <= TRIG[37];           TRIG[37] <= TRIG[38];           TRIG[38] <= TRIG[39];           TRIG[39] <= 0; напрямую написал
  2. попробовал скомпилить опять пошли ошибки компиляции причем ну очень странного содержания TRIG[0:7] <= mode[7:0]; Error (10198): Verilog HDL error at avrout.v(42): part-select direction is opposite from prefix index direction вроде что то с разрядностью причем ошибки везде где шина развернута если же прямо TRIG[7:0] <= mode[7:0]; все ок никаких проблем
  3. Цитата(iosifk @ Jan 12 2016, 22:24) Вообще все это очень плохо. Вы под ena_avr коммутируете тактовую на входе регистра TRIG, причем не факт, что clk_avr и clock коммутируются без глитчей и метастабильности. На мой взгляд это совершенно бессмысленно, поскольку наверняка clk_avr намного медленнее, чем clock. А потому я рекомендую сделать CDC прямо на входе в ПЛИС по данным и по клоку от АВР... Кодalways @(posedge clock) begin    sinxr_avr_ena <= ena_avr;    sinxr_clk_avr <= clk_avr;       if (sinxr_avr_ena == 0) begin        TRIG[0:7] <= mode[7:0];        TRIG[8:20] <= FAZ[12:0];        TRIG[21] <= FAZ[12];        TRIG[22] <= FAZ[12];        TRIG[23] <= FAZ[12];        TRIG[24:36] <= AMP[12:0];        TRIG[37] <= 0;        TRIG[38] <= 0;        TRIG[39] <= 0;       end       else begin          if ((~sinxr_clk_avr & clk_avr)) begin           TX <= TRIG[0];               TRIG[0:38] <= TRIG[1:39];           TRIG[39] <= 0;          end                      end      end endmodule переделал ругани нет завтра буду пробовать
  4. ena_avr конечно медленнее основного clk суть какая по основному клоку происхоит паралельная загрузка в буфер когда ena_avr 1 тогда паралельная запись блокируеться и побитово выгружаеться в avr через avr_clk а как сделать по другому ? avr ведь может делать чтение абсолютно асинхронно в зависимости о загружености другими задачами
  5. Кодmodule avrout(     input    clock,     input   clk_avr,     input ena_avr,     input [12:0]  FAZ,     input [12:0] AMP,     input [7:0] mode,     output reg TX ); reg [39:0] TRIG;   if (ena_avr) begin    always @(posedge clk_avr) begin    TX <= TRIG[0];        TRIG[0:38] <= TRIG[1:39];    TRIG[39] <= 0;    end         end else begin    always @(posedge clock) begin    TRIG[0:7] <= mode[7:0];    TRIG[8:20] <= FAZ[12:0];    TRIG[21] <= FAZ[12];    TRIG[22] <= FAZ[12];    TRIG[23] <= FAZ[12];    TRIG[24:36] <= AMP[12:0];    TRIG[37] <= 0;    TRIG[38] <= 0;    TRIG[39] <= 0;    end end endmodule очень странная ругань компилятора Error (10170): Verilog HDL syntax error at avrout.v(32) near text "end"; expecting "endmodule" может always блок нельзя вставлять в условия if else
  6. проверил таки да ваш код нормально компилит с использованием ram блока
  7. а разве есть отличия между reg signed [13:0] TRIG [1024]; и reg signed [13:0] TRIG [0:1023];
  8. Кодmodule cic_greb_U(clock,IN,OUT,U); input    clock; input signed [13:0]  IN; input [9:0] U; output signed [13:0]  OUT; wire signed [13:0]  rezult; reg signed [13:0] TRIG [1024];   integer n; always @(posedge clock) begin TRIG[0][13:0] <= IN[13:0];    //   for (n=0; n!=1023; n=n+1) begin //      TRIG[(n+1)] <= TRIG[n];            end end assign rezult = TRIG[0] + TRIG[U]; // vixod assign OUT = rezult; endmodule проблема такая если на вход отвода подавать константу все нормально компилиться для формирования задержки используеться встроеная оперативка циклона но если подавать переменную то оператива не используеться а юзаеться логика и как факт огромный размер проекта те е компилятор не может сделать динамический вывод от памяти можно ли както решить этот вопрос компилятор квартус 9.1
  9. поставил сабж опять не работает визард для lpm_dff и lpm_ram блоков такое же было и для 11 версий квартуса пришлось откатываться на 9 неужели до сих пор не исправили так же проблема с русскими коментариями осталась
  10. может кому пригодиться[attachment=78113:ADPCM.rar] нечего не оптимизировано бо не умею как дано в рекомендации так и сделано походу рекомендация писалась для процов не поддерживающих знаковую математику естественно могут быть ошибки но в первом приближении вроде работает
  11. как в визарде поменять имя блока например визард создал триггерный модуль lpm_dff10 соответственно и файлы этого модуля имеют это же имя а мне нужно дать ему свое имя например TRIG_A конечно можно переименовать вручную но ето ж гемор
  12. прямая загрузка http://download.altera.com/akdlm/software/...-13.0.0.156.iso
  13. выложите пожалуста прямую ссылку на загрузку free web
  14. Цифровая ФАПЧ

    Цитата(winipuh @ Apr 8 2013, 21:18) Признаюсь честно - я ни черта не понял . Просто когда речь заходит о цифровой ФАПЧ, то в голове у меня другая картинка рисуется... Вы не могли бы поподробнее рассказать как работает Ваша ФАПЧ и, главное, для чего она работает. Что это за блок "CORDIC PLL"? Общие представления о cordic имеются, что такое ARCT CORDIC тоже понятно. А вот что такое CORDIC PLL - нет А заодно объясните, как она решает (и может ли решать) "типичные" задачи для ФАПЧ: 1) Фильтрация дрожания фазы входного сигнала (джиттера). 2) Захват частоты, а главное - удержание частоты при потере входного сигнала. идею я взял вот тут демодулятор с фапч CORDIC PLL генератор dds sin cos то я перепутал вместо dds написал pll по поводу второго пункта даже не знаю надо проверить
  15. Цифровая ФАПЧ

    Цитата(winipuh @ Apr 8 2013, 20:49) Круто! А выход то где? Где выходной клок? выход идет с фд в момент девиации на нем должен быть выброс сигнализирующий о изменении фазы входного сигнала а клок я не рисовал эта системная частота с которой работает плис по сути частота семплов