RS триггер в GOWIN IDE (пока что такой).
Запись от Hrethgir размещена 12.06.2024 в 19:25
Показов 1632
Комментарии 4
|
Заморочался с Xilinx, потратил впустую много времени, и устанавливал на убунту, и что только не делал - графического редактора в ISE не нашёл, возможно криво взломал лицензию (если это можно назвать взломом - подсунул ключи от другой IDE этой-же фирмы, что-то она съела, выдала таблицу что у меня будет работать, в общем : хакинг - не моё). Поняв бесполезность затеи перключился на другую плату - GOWIN, там всё намного проще, как мне показалось - ничего не надо взламывать, санкций пока нет. Сначала сгенерировал RS триггер используя базовые логические элементы - схема рисорвалась в вьювере, но при синтезе были предупреждения. Тогда нашёл в белорусском журнале 2012 года, что подобный трюк работать не будет, хоть и синтезируется для разных плат, про предупреждение там тоже писалось. Подумал ещё о вариантах, понял что трюки тут на вентильном уровне не пройдут, и написал от себя (с помощью книги основы языка проектирования цифровой аппаратуры VERILOG, так как в этом ЯП я вообще нуб и не умею вообще ничего без книг) так: [CODE]module Trs (input S, R, output reg Q); always @(*) begin Q =0; if (S==1) Q=1; if (R==1) Q=0; end endmodule [/CODE] Сгенерировало вроде нормально, похоже что работать должно, хотя не факт. Смотрел документацию по примитивам...не нашёл такого...хотя тут он есть... Скорее всего попробую новый модуль, с испольованием этого примитива... В качестве эксперимента мне однозначно создавать внешний модуль с стилем описания на вентильном уровне. Вентильный уровень мне нужен для того, чтобы для данной схемы испольщовать статическую - асинзронную логику. И тогда снова упрусь в то, что не умею при условных операторах осуществлять несколько действий сразу. Но это не долго попробовать. А так - это просто запись о том, что начал пользоваться хоть какой-то IDE, которой уже смогу прошивать свою плату. В общем пока ни о чём. [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=8742&stc=1&d=1718209635[/IMG] Да, их полный вариант с проверкой условия дороже выходит по средствам [CODE]module Trs (input S, R, output reg Q, NQ); always @(*) begin Q = 0; NQ = 1; if (S==1) begin Q=1; NQ=0; end if (R==1) begin Q=0; NQ=1; end end endmodule[/CODE] , проще вставить в новый модуль, описанный на вентильном уровне, с ответвлением выхода на инвертор, первый вариант, будет почти в два раза дешевле. [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=8743&stc=1&d=1718212010[/IMG]. Очень надеюсь, что моя статическая память для кэша, работающая в режиме без счётчка команд - удастся. Доделал всё-таки триггер. Но чего-то ещё не так как я ожидал...что-то тут лишнее в коде, жаль что мне он малопонятен. [CODE] module MyRS (input S, R, output Q,NQ); wire q1; Trs sum0(S,R,q1); assign Q = q1; assign NQ = ! q1; endmodule;[/CODE] Есть такое дело [QUOTE]WARN (EX2810) : Extra semicolon in $unit (global) scope("/home/andrei/Documents/DebianCopy/MyGW/MyCell/src/MyRS.v":8)[/QUOTE] , но вроде как работать должно. В разных вариантах кода генерит одну и ту-же схему... [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=8744&stc=1&d=1718219246[/IMG] Это будет следующий этап [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=8745&stc=1&d=1718393319[/IMG] описаний на Verilog начнётся с описания проходящих линий - иначе никак логически не описать. |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 4
Комментарии
-
Завтра просто на выход Q попробую инвертор и выход NQ подключить, без промежуточного сигнала.Запись от Hrethgir размещена 12.06.2024 в 22:55
-
Попробовал, буфер перед выходом Q не пропадает при синтезе даже если убрать выход NQ . Вернул как было, вероятно это особенность IDE или кода который пишу, потом разберусь с этим.Запись от Hrethgir размещена 13.06.2024 в 20:21
-
Как вариант самому прописать инвертор в конечном проекте и не делать вложние компонентов. Так наверное даже будет правильнее. Похоже что так и сделаю. В общем как синтез пойдётЗапись от Hrethgir размещена 13.06.2024 в 20:33
-
Проанализировал схему, первое что логично описывать в Verilog - проходящие линии ячейки, с их промежуточными переменными. Линии я выделил красными окружениями на последнем изображении в записи.Запись от Hrethgir размещена 14.06.2024 в 22:28


