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

sazh

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о sazh

  • Звание
    Гуру

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Петербург
  1. Плясать надо не от библиотек, а от семейства fpga и его структуры. Как раньше говорили, если семейство на базе статической ячейки памяти, регистровая структура инициализируется нулями, что можно использовать для начальной установки регистров в любое значение. Другое дело что (например Альтера) ранние синтезаторы не позволяли это делать простым присваиванием в теле модуля. А теперь могут. Суть от времени не меняется. `timescale 1 ns / 1 ps `define ena_90 module initial_set #( parameter set = 8'd8 ) ( input clk, input [7:0] data_in, input ena, output [7:0] data_out ); `ifdef ena_90 reg [7:0] dffe_rg = 8'd0; assign data_out = dffe_rg ^ set; always @ (posedge clk) begin if (ena) dffe_rg <= data_in ^ set; end `else reg [7:0] dffe_rg = 8'd8; assign data_out = dffe_rg; always @ (posedge clk) begin if (ena) dffe_rg <= data_in; end `endif endmodule
  2. `timescale 1 ns / 1 ps module ct ( input clk, output [1:0] counter ); reg [1:0] counter_rg = 2'b00; always @(posedge clk) begin counter_rg <= counter_rg + 1'b1; end assign counter = counter_rg; endmodule
  3. Цитата(Realking @ Dec 22 2017, 09:13) думаю можно не волноваться выдержка из pin connection guidelines In cases where the TDO pin uses VCCPD = 2.5 V to drive a 3.3 V JTAG interface, there may be leakage current in the TDI input buffer of the interfacing devices. An external pull-up resistor tied to 3.3 V on the TDI pin may be used to eliminate the leakage current if needed. и еще глянь https://www.altera.com/content/dam/altera-w...ne-v/cv_5v2.pdf стр. 115 (Table 5-10: MultiVolt I/O Support in Cyclone V Devices) Я это иначе прочитал. Это о случае, когда если TDO использует VCCPD = 2,5, а внешнее устройство (usb бластер) запитан от 3.3В,может быть ток утечки в входном буфере TDI интерфейсного устройства. Рекомендуют внеший резистор. Здесь не рассматривается случай подтяжки пинов tms, tdi jtag плис к 3.3В, если VCCPD = 2,5.
  4. Цитата(momotova @ Sep 29 2017, 19:38) XAPP не работает. При приеме байта AA на выходе 1. Если ГОСТ Р 52070 2003
  5. Цитата(Mad_max @ Sep 18 2017, 15:59) А вот отец Иосиф готов потратить свое время и передать Вам немного своих знаний, не стоит этим пренебрегать! 25 лет как нет совка, так сколько еще он будет жить в головах? Интересно, где по Вашему отец Иосиф свои знания получал?
  6. Цитата(Golikov A. @ Sep 8 2017, 19:57) Начинал с контроллеров, потом были ПЛИС, сейчас АСИКи. Какая разница как это называть? У вас есть инструмент решения задачи, среда и правила игры. Что думаете программисту контроллеров недоступна схемотехника? Или человек с высшим образованием не постигнет работу триггера? Все эти различия - это вопрос опыта. В первый год работы никто не выдаст идеального кода, а особо одаренные не выдадут его и за всю жизнь. А кроме них любой нормально соображающий человек может постичь и программирование и схемотехнику и плис и садоводство. Сейчас цепляться за то что "ПЛИС недоступна программистам" это как во времена становления языка С, ходили трушные программисты и говорили только ассемблер, только так... Появляется куча языков верхнего уровня, ресурсы плис дешевеют, скорости растут, растет важности скорости получения решения над компактностью. Поэтому если любой SystemC, HDL и прочее решает задачу быстрее, то и здорово. Не старейте товарищи, нечего брюзжать А к какому Госту, по Вашему мнению, можно привязать проект на ПЛИС, До сих пор все отбиваются от понятия программный продукт. Цитата(novikovfb @ Sep 8 2017, 20:20) Вернемся к теме. По обычному программированию написано много книг по стилю написания программ: паттерны, структурирование, рефакторинг, рекомендации по оформлению хорошо читаемого текста. Есть ли что-то подобное по HDL? К сожалению, нет.
  7. Цитата(Dr.Alex @ Aug 25 2017, 19:49) Я чё-то не понимаю? (DDR контроллер памяти, самые медленные гигабитные передатчики, коммерческое исполнение). (фирма продает дефектоскопы для АЭС). А отвечать за такой выбор кто будет. Цитата(sazh @ Aug 25 2017, 21:14) (DDR контроллер памяти, самые медленные гигабитные передатчики, коммерческое исполнение). (фирма продает дефектоскопы для АЭС). А отвечать за такой выбор кто будет. Как страшно стало жить.
  8. Цитата(Tausinov @ Jul 26 2017, 20:15) Это я и имел в виду под А зачем вам ловить переполнения. Расширяйте разрядную сетку. module sum_signed_unsigned ( input add, input [3:0] a, b, // unsigned input [3:0] aa, bb, // signed output [4:0] s, // unsigned output [4:0] ss // signed ); assign s = add ? {1'b0, a} + {1'b0, b} : {1'b0, a} - {1'b0, b}; assign ss = add ? {aa[3], aa} + {bb[3], bb} : {aa[3], aa} - {bb[3], bb}; endmodule
  9. Цитата(Tausinov @ Jul 26 2017, 18:56) Все так, я просто хотел на конкретном примере показать, что не совсем понял, о чем речь. В данном случае, если 9-го бита в железе нет, то переполнение наступит в обоих случаях. Если нет расширения разрядной сетки. Возьмем базовый примитив сумматора. Как известно у него разрядность суммы такая же как и разрядность слагаемых. Но у него при этом есть возможность активизировать выход или переноса, или переполнения. В зависимости от того как Вы воспринимаете входные коды. А если нет расширения разрядной сетки, значит Вы не получите правильный результат во всем диапазоне входных кодов.
  10. Цитата(Tausinov @ Jul 26 2017, 18:31) Возьмем, скажем 8-битные числа. Железо про числа ничего не знает. Оно работает с кодами, которые в соответствии с задчей можно представить как числа со знаком или без знака. Если Вы сами заботитесь о расширении разрядной сетки должным образом, то полученный код будет соответствовать Вашим представлением. Можно конечно воспользоваться указаниями синтезатору. Но нужно четко при этом понимать, что должно получиться.
  11. Цитата(Shamil @ Mar 27 2017, 09:35) А где взять 6-ю версию Квартуса не подскажите ? А то на фтп есть только 9.1 и выше... Последняя версия Квартуса, которая поддерживает семейство FLEX10KE - 9.0 SP2. Циклон 2 тоже, может пригодиться. Языки описания аппаратуры тоже прилично поддерживает. Моделсим тоже прилагается.
  12. Цитата(justontime @ Oct 25 2016, 22:18) Хм, вроде казалось все просто, но выскочила глупая проблема... Документация вроде говорит, что явно указанная lcell не должна автоматически убираться Quartus'ом. Соответственно, я добавил в код (VHDL) нужный мне lcell, однако при компиляции было сказано, что он Synthesized away... Ладно, решил просто отключить такую оптимизацию для всего проекта в целом. Для начала, очередной раз обнаружил, что 16-ый Quartus изменился в отношении интерфейса - соответствующие настройки нашлись не в Settings/Analysis & Syntesis, а в Settings/Compiler settings. Но это ладно - главное, что там уже стоит Removes redundant logic cells - Off ! Что дальше с этим делать - ума не приложу [update] - реально какая-то фигня... Попробовал слегка по другому - сделал просто сигнал и добавил к нему атрибуты: attribute keep : boolean; attribute keep of Delay12 : signal is true; Сама Altera такой пример приводит, а оно почему-то все равно Synthesized away... По схеме у Вас RS триггер нарисован. И используется явно в противоречии с таблицей истинности. Примитив dff еще никто не отменял. Поставьте 9 Квартус. Его будет достаточно под такое творчество. Если нужно реализовать на задержках из строба короткий импульс, окунуться так сказать в прошлое, такое вот предлагали.
  13. Цитата(Navuhodonosor @ May 30 2014, 07:12) Имеется N схем, собранных на логике типа Little Logic (SN74LVC). Самое крутое в этих схемах - D-триггеры и мультиплексоры, а в основном - ИЛИ и НЕ. Ничего сверхсложного. Есть жгучее желание запихивать все эти схемы в единый корпус. Проблема в том, что при попытке изучить, что производится из PLD, и сделать выбор, наталкиваешься на очень куцые данные. Типа "купите систему проектирования и получите полную информацию". Ни разу не просматривается польза от постановки задач такого рода. (Как по деньгам, так и по конструированию) Переход на все новое надо осуществлять за счет заказчика. Поэтому купите EZ KIT по новее с пакетом разработки под любимую фирму и все.
  14. Цитата(evgenz @ May 29 2014, 10:35) щас по пробую за фиксировать данные на шине процессора по вашему совету, я вот только не понял по поводу чтения Сейчас увидел строку if (HCLK'event and HCLK = '0') then if WR='0' AND CSTx(0)='0' AND CS2Tx(0)='1' then WR_ENx(0) <='1'; и понял, что ввел Вас в заблуждение. Вы формируете сигнал ena по переходу из 1 в 0 сигнала WRn. Тогда с записью у Вас должно быть все нормально. WR='0' в условии наверно лишнее Что касается чтения, наверно нет надобности его стробировать клоком, чистое мультиплексирование по адресу process (X50) begin if rising_edge(X50) then if (AD(19 DOWNTO 18) = "00") then DATA_OUT<=DATA_OUT0; end if;
  15. Цитата(evgenz @ May 28 2014, 15:39) я уже писал что проект собирается через командную строку, там я задаю параметр -t (Placer Cost Table) эта таблица может принимать значения от 0 до 100, и при переборе значений этого параметра очень сильно зависит частота возникновения ошибок. Получается что от расположения шины в кристалле все таки что то зависит или я не прав?? Мне кажется, Вы перемудрили с селектором адреса, в особенности в цикле записи. Если я правильно понял, активные уровни WR,RD - 0 Определитесь с длительностью этих циклов (записи, чтения) в системных тактах процессора (по умолчанию там обычно максимальный) По переходу из 0 в 1 сигнала WR Вы привязываетесь к клокам 50, 100, формируя сигналы ENA Мне кажется тут Вы и теряете данные (по записи, а не по чтению) Наверно надо в Вашем случае по переходу из 0 в 1 сигнала WR в интервале CS фиксировать в регистрах значения адреса и данных на шине процессора в цикле записи, а не просто транслировать со входа на выход модуля. Ну а длительность цикла чтения зависит только от Ваших задержек TRANS<='0' WHEN CS='0' AND (RD='0' OR WR='0') ELSE '1'; зачем он в цикле чтения