Gowin EDA или Verilog...пока не ясно, но есть строка которая в корне меняет и массив и быстродействие и визуализацию..
Запись от Hrethgir размещена 08.11.2024 в 13:41
Показов 1375
Комментарии 0
|
В коде есть строка, которая логически не меняет ничего, но зато меняет всё в плане визуализации и быстродействия. То что меняется массив - следует из того, что меняется визуализация, а что там меняется ещё - трудно сказать, но тестбенчи показали, что при неправильной визуализации всё работает, хоть на вьювере и отображается что ничего работать не должно как задумано (асинхронный счётчик, быть точнее - согласно визуализации вообще ничего работать не должно). Код при котором всё правильно во вьювере [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=9030&stc=1&d=1731062632[/IMG] и быстродействие тоже [CODE] //Copyright (C)2014-2024 Gowin Semiconductor Corporation. //All rights reserved. //File Title: IP file //Tool Version: V1.9.9.03 Education //Part Number: GW1NR-LV9QN88PC6/I5 //Device: GW1NR-9 //Device Version: C //Created Time: Sat Nov 2 20:39:09 2024 module Gowin_OSC (oscout); output oscout; OSC osc_inst ( .OSCOUT(oscout) ); defparam osc_inst.FREQ_DIV = 2; defparam osc_inst.DEVICE = "GW1NR-9C"; endmodule //Gowin_OSC module Trs (input S, R, output Q); not n1(R1,R); and a1(G,S,R1); DLC dlc1 (Q,G,G,R); endmodule module pprobe1 ( output out); // 6 LEDS pin); genvar i; wire [30:0] w; wire restT; generate not (w[0],w[29]); for (i=0; i<29; i=i+1 ) begin:pprobe1_generation Trs tr(w[i],w[29],w[i+1]); end endgenerate assign out= w[29]; //Gowin_OSC GwOsc(oscout); endmodule [/CODE] . Правильным это всё делает третья с конца строка, а именно эта [CODE]assign out= w[29];[/CODE] . Если её закомментировать, то во вьювере будет всё замкнуто [IMG]https://www.cyberforum.ru/blog_attachment.php?attachmentid=9029&stc=1&d=1731062680[/IMG] , но оно работает со скоростью которая в два раза меньше чем скорости работы первого кода. Ранее вознкла серьёзная трудность из-за особенностей работы с массивами в блоках генерации схемы - но теперь её нет (там просто замыкались провода). Имея ввиду это, теперь я проведу тестбенч порядка от тысячи до нескольких тысяч в последовательно подключённой цепи электронных ключей, чьи транзисторы находятся в насыщенном состоянии (думаю что всё-же там используются биполярники, которые банально отвечают за наложении битстрима на вентильную матрицу), и после этого выложу все тестбенчи с расчётами из прошлой публикации на Хабр, которую я удалил, и чтобы показать мощность асинхронной логики (там я пока этого не делал). Задержка у асинхронных триггеров конечно есть, но они работают без тактирования. Имеет-ли место возникающий из ниоткуда такт (это не относится к цепи электронных ключей, это относится к кодерам "богословам", которые невнятно что-то лепечут о идеалах и о том что ничего сделать не получится, ну или крайне трудно, а точнее - почти невозможно) - теперь я тоже могу проверить, так как разобрался с особенностью среды разработки или языка Verilog, и с блоками генерации схем и циклами могу проверить теперь вообще что захочу. Не привожу тестбенчи тут, потому что делаю их на другом ПК (мини), с которого в инет не выхожу. |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


