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

Sobol'

Свой
  • Постов

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

  • Посещение

Весь контент Sobol'


  1. Изначально температура была 27 градусов. Грели тем, что под руку попалось. Сегодня под руку попался резистор 1ом и лабораторный источник тока... приложили бедолагу-резистор сверху к ПЛИС и смотрели на осциллографе, как ползет задержка. Температуру мерили пирометром.
  2. Если вдруг кому интересно. на чипе epm3064 мерили сейчас реальную задержку осциллографом. Каждый Lcell увеличивает задержку примерно на 2.5нс. Цепочка из 10 буферов при комнатной температуре сдвинула входной сигнал на 27ns. Нагрели ПЛИС до 65 градусов, задержка увеличилась на 2.4ns.
  3. ТС хотел получить задержку тактового сигнала примерно на один лапоть силами означенной CPLD. Партия устройств маленькая, работать будут при комнатной температуре. ПЛИСина эта уже имеется на борту устройства. И, да, количество инверторов будет подбираться экспериментально для каждой платы. Да, это такой костыль. Да, мне это все не нравится. Да, руководство осознает что творит, но именно оно именно так поставило задачу. Нет, тактовую логику использовать нельзя. Еще раз говорю, что мне это все не нравится, но другого пути пока нет. Lcell-буферы вполне меня устраивают, хотел разобраться с директивами компилятора чисто для общего развития.
  4. Спасибо, добрый человек! У меня получилось: module temp_altera ( input clk_in, output clk_out_delay ); wire keep_wire_1 /* synthesis keep */; assign keep_wire_1 = !clk_in; wire keep_wire_2 /* synthesis keep */; assign keep_wire_2 = !keep_wire_1; wire keep_wire_3 /* synthesis keep */; assign keep_wire_3 = !keep_wire_2; assign clk_out_delay = keep_wire_3; endmodule
  5. с lcell разобрался, спасибо. Однако все-таки интересно, как отключить оптимизацию в конкретном куске модуля. /*noprune*/ не помогло, явно что-то делаю не так: module temp_altera ( input clk_in, output clk_out_delay ); /*synthesis noprune*/ wire [3:0] line = { line [2:0], ~clk_in}; /*synthesis noprune*/ assign clk_out_delay = line[3]; endmodule
  6. Всем привет! Задача - получить задержку сигнала. ПЛИС - altera EPM3064. Среда - QUARTUS II 13.0. Мне бы хотелось просто поставить некоторое количество инверторов между входом и выходом, но при синтезе оптимизатор их убирает. Пробовал директиву /*synthesis keep*/, не помогло. Подскажите пожалуйста, как поступить.
  7. wire [31:0] new_data = { DATA_IN, DATA_PRELOAD[31:1] }; always@(posedge CLK) begin DATA_PRELOAD <= new_data; if(new_data[31:29] == 3'b010) begin /// end end
  8. Так, на всякий случай. "1" имеет размерность 32 бита, "1'b1" - 1 бит.
  9. я бы еще явно описал то, что должен делать триггер, когда оба сигнала в единице. Например так: always @* begin if (r && !s) q <= 1'b0; else if (!r && s) q <= 1'b1; else if (r && s) q <= 1'bZ; else q <= q; end последнюю строчку можно выкинуть.
  10. Всем спасибо! Я думал там есть внутренние подтягивающие резисторы. Буду пробовать ставить внешние.
  11. Все 4 пина JTAG должны быть подтянуты через килоОм к плюсу, верно?
  12. Доброго времени суток, уважаемые! Проблема следующая. Сделали несколько одинаковых устройств на основе альтеровской EPM3064 (семейство MAX3000A). После прошивки все заработало без проблем, аж порадовался. Повалялись эти девайсы на столе пару недель без дела и после этого отказались работать. Перепрошил - заработали. В чем может быть проблема? Конфигурационная память в CPLD со временем затирается без питания? Или может просто бракованые микрухи попались?
  13. в данном случае mem - локальная переменная оператора if, следовательно вне "своего" оператора она не видна - все логично. Как решить Вашу проблему, чтобы все было красиво - чесно ХЗ. Смотрите директивы компилятора языка, возможно поможет.
  14. Надо продлить импульс сброса используя клок200. Запилить счетчик и растянуть сброс на несколько тактов клок200, так чтобы полученный сигнал гарантированно попал в период клок50.
  15. FPGA, имхо, не может работать с регистром, который тактируется двумя клоками. Может быть один клок и асинхронный сброс. Если импульс сигнала сброса короче чем период сигнала синхронизации, то я вижу три пути решения: 1) сделать асинхронный сброс 2) запилить защелку типа RS-триггера, на S подключить ресет, на R - клок50. Получится фигово, сразу говорю. 3) если сброс приходит снаружи, подключить какую-нить RC-цепочку, чтобы продлить импульс сигнала сброса. Ох чую ща придут гуру и будут в меня тапками кидать.
  16. да, логические элементы сведуться в итоге к транзисторам. В случае монтажного И или монтажного ИЛИ ни каких транзисторов не требуется - выходы устройств, которые требуется объединить, присоединяются к одному проводу, который через сопротивление подтягивают к нулю или единице. Вот я и подумал, что в этом случае токи утечки вероятно будут больше чем в случае использования транзисторов. Я имею ввиду реализацию на ПП или на кристалле, а не FPGA.
  17. А вот интересно, как обстоит дело с энергопотреблением? наверное, у монтажного ИЛИ утечки куда больше чем у ИЛИ на логических элементах?
  18. есть шина wire [7:0] data_bus; KEEPER (.O(data_bus[0])); KEEPER (.O(data_bus[1])); KEEPER (.O(data_bus[2])); ....... она присоединина к куче двунаправленных портов различных модулей. В каждом модуле конструкция типа: inout [7:0] data_bus; input mem_RE; reg [7:0] memory; assign data_bus = mem_RE ? memory : 8'hZZ; Я ни чего некоректного тут не вижу, может быть кто-то из гуру меня поправит.
  19. работаю в ISE 14.7, шину с третьем состоянием переваривает нормально. Повесил киперы (приметив KEEPER) на всякий случай.. Кстати, в ISE в Language Templates (verilog->Synthesis Constructs->Coding Examples->Bi-directional I/O->Unregistered) описаны примеры использования двунаправленных портов, и судя по всему тристабильных.
  20. ..или wire, если невыбранный модуль передает ZZZZ - вариант? ну всмысле обычная шина без подтяжки и буферы с третьим состоянием.
  21. можно. Но имхо, если драйверов действительно дофига, то удобнее WOR. Меня, как схемотехника, ставят в ступор циклы в синтезируемом модуле ))
  22. Да с WOR как раз все нормально - монтажное "или" более наглядно описать нельзя. Вот циклы - это уже шаг в сторону. ИМХО.
  23. Уважаемые, ткните пожалуйста меня носом - где почитать про DCM на русском?
×
×
  • Создать...