xvr
Свой-
Постов
3 583 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент xvr
-
Манчестер на Verilog
xvr ответил Egor-ka тема в Языки проектирования на ПЛИС (FPGA)
Ошибка (и не единственная :05: ) в том, что все присваивания любому регистру нужно делать в пределах одного always блока (единственное исключение - шины с 3мя состояниями, но в такие подробности лучше не вдаваться :) ) Второе но - у вас асинхронная реализация, при имплементации этого в FPGA вы сможете подробно и со всех сторон изучить все грабли, которые разложены на пути приверженцев асинхронного подхода Рекомендую сделать синхронный дезайн. Что касается остального, то прежде чем писать Верилоговский модуль необходимо определится с интерфейсом: 1) Как будет осуществлятся загрузка данных и их сдвиг (один сигнал или несколько?) 2) Что должно быть на выходе Manch когда сдвиг запрещен? 3) Нужна ли синхронизация фазы выходного манчестера? -
выключение Комп
xvr ответил grach41 тема в Программирование
Покопал в своих закромах, нашел программу выключающую комп через APM -
выключение Комп
xvr ответил grach41 тема в Программирование
Ключевое слово - ACPI Более простое (но сильно устаревшее) - APM -
Угу, совсем пониженного :) Ядро останавливается Нет Да Прерыванием от АЦП по окончанию преобразования
-
Добавлю свои 5 коп. автору темы: ОЧЕНЬ рекомендуется (а при вашем диапазоне входных напряжений и вообще обязательно :) ) переводить процессор в режим SLEEP во время измерения напряжения - ядро процесора довольно заметно шумит, его остановка позволяет от этого шума избавится.
-
Это и есть слегка другие чипы. Угу, обычно, когда говорят об UART на ум первым приходит RS232, про RS485/422 обычно упоминают явно :) Да, но может потребоваться выбрать конкретный тип и speed grade (не все могут подойти). Кстати, глупый вопрос, а там, куда вы этот RS485 подключать собрались, 12 MBaud смогут принять?
-
О! Это совсем другое дело. На такие скорости CPLD вполне пойдет и никакие LVDS тоже не нужны. Однако с MAX'ом все равно будут проблемы - стандартные max232 расчитанны на частоты в 100 раз меньше, а на требуемые 12 MBaud будут слегка другие чипы :)
-
Ой, я наверное отстал от жизни, но MAX у вас - это такой 400MBaud UART? :07: И давно такие делают?
-
Попробовал, увы return Verilog не понимает :( Простой цикл (без дополнительной проверки на сработавший hit) понимает, получилась очень широкая структура (по отдельному логическому блоку на каждый бит выхода), как ни странно она заняла почти в 2 раза меньше ресурсов и стала слегка быстрее, на чем я пожалуй и остановлюсь :beer: always @(inputs) begin hit_index_int = 0; for(cnt=0;cnt<INP_WIDTH;cnt=cnt+1) if (inputs[cnt]) hit_index_int = cnt; hit_index = hit_index_int; hit = (inputs!=0); end Приоритеты правда изменились на противоположные, но для моего случая это не существенно.
-
Попробовал, почти получилось: module p_enc #(parameter INP_WIDTH=8, parameter OUT_WIDTH=3) ( input [INP_WIDTH-1 :0] inputs, // Inputs (index 0 has high priority) output reg [OUT_WIDTH-1:0] hit_index, // Index of input hit output reg hit // 1 if any input hit ); reg [OUT_WIDTH-1:0] cnt; reg [OUT_WIDTH-1:0] hit_index_int; reg hit_int; always @(inputs) begin hit_index_int = 0; hit_int = 0; for(cnt=0;cnt<INP_WIDTH;cnt=cnt+1) begin if (!hit_int && inputs[cnt]) begin hit_int = 1'b1; hit_index_int = cnt; end end hit_index = hit_index_int; hit = hit_int; end endmodule XST сделал длинную 'кишку' из логики, но как 'priority encoder' он это не опознал :( Т.е. его специальные методы для синтеза энкодеров работать не будут (а есть ли они вообще?) PS. 2 des00: спасибо за round-robin арбитр, пригодится :) Кстати, чем синтезировали?
-
Это понятно, непонятно что делать если ни один сигнал не совпал - default к циклу не присобачишь :unsure:
-
Параметризированный Priority Encoder
xvr опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Господа, кто может подсказать, как создать параметризированный Priority Encoder в Vierilog (2001)? Необходимо что то вроде module PriEncoder #(parameter INP_WIDTH=32, parameter OUT_WIDTH = 5) ( input [INP_WIDTH-1:0] input_lines, output [OUT_WIDTH-1:0] hit_line_index, output hit_line); Думаю, что надо копать в сторону for/while циклов, но не очень понятно, как их отработают синтезаторы :( Нужно для XST / ISE 8.2 -
Вылечено (?) в SP2
-
порекомендуйте простойweb-сервер
xvr ответил romez777 тема в Операционные системы
Смотрим исходные требования: Сравниваем: Denwer - Весит меньше 5 метров. GoAhead WebServer 2.1 - 60K memory footprint Как говорится - почуствуйте разницу B) -
порекомендуйте простойweb-сервер
xvr ответил romez777 тема в Операционные системы
http://webserver.goahead.com/ -
Bug в Xilinx ISE
xvr опубликовал тема в Работаем с ПЛИС, области применения, выбор
Некоторое время назад я наткнулся на занимательный баг в postfit симуляторе для CPLD (проявилось на XC9572XL, возможно и на других проявится тоже). Сделал проект (на Verilog'е), сделал test bench, запустил, все работает. Оттранслировал проект вплоть до bitstream, решил проверить в симуляторе результат - ничего не работает, сплошные X, иногда проскакивают похожие данные :05: Стал разбираться. Через пару часов разбора полетов выяснил, что не работает глобальная предустановка (PRLD), что выглядело странно - вроде как никто ее не отменял. Дальнейшие танцы с бубном вокруг этого сигнала ни к чему не привели - грешил на реализацию ее в модуле glbl (хотя вроде в симуляции ДО fitter'а он работал), пробовал ее перенести к себе - никакой реакции :( Пробовал вручную установить сигнал - аналогично. Изучение Verilog файла после fitter'а показало, что этот сигнал там есть и используется, как положено. Я убил ДВА ДНЯ, что бы понять различие между СМОТРЕТЬ и ВИДЕТЬ - wire \glbl.PRLD; X_OR2 \serial_mux_inst/mode_reg<1>_tsimcreated_prld_ ( .I0(\serial_mux_inst/mode_reg<1>.SETF_70 ), .I1(\glbl.PRLD ), .O(\serial_mux_inst/mode_reg<1>_tsimcreated_prld__71 ) ); \glbl.PRLD - это не сигнал PRLD в модуле glbl, а локальный сигнал glbl.PRLD в текущем модуле :01: Добавление строки assign uut. \glbl.PRLD = glbl.PRLD; в тестбенч помогло - все сразу заработало. У меня вопрос - неужели никто не использует postfit моделирование для CPLD в ISE? Или никто не использует состояние тригеров в CPLD по сбросу? И почему эту багу до сих пор не исправили :cranky: Найдено было в ISE 8.2.03i (WEB Pack), перепроверено на ISE 9.2.02i (WEB Pack) - все по прежнему -
Экспорт класса из dll
xvr ответил Pathfinder тема в Программирование
Эффективно и переносимо будет сделать в виде COM объектов (dll соотвественно будет COM сервером) -
Если SE то для него нужно компилировать библиотеки, см доку Synthesis and Simulation Design Guide, раздел Compiling Xilinx Simulation Libraries (COMPXLIB)
-
Обновить библиотеки не пробовал? (С сайта Xilinx) Лицензия на MXE (даже на free) берется на сайте Xilinx'а (где то в районе загрузки собственно MXE) Нет, не прав. Во первых они есть в самом WebPack'е, во вторых они есть в MXE, в третьих - на сайте Xilinx'а есть обновление библиотек для MXE - это они самые и есть (библиотеки в чистом виде)
-
Передача RGBHV по витой паре
xvr ответил Bamchi тема в Вопросы аналоговой техники
Если важен результат а не процесс - возьмите готовые: Extron VTR001 & VTT001 (или любой другой их продукт из серии Twisted pair/RGB Transmitters and Receivers -
Хотелось максимально использовать возможности по скоростям, хотя это в данном случае и не критично В том и проблема, что эти характеристики противоречивые - в одном месте datasheet'а написано 10 MHz, в другом - менее 5 MHz Увы, XC9576XL -10 не тянет даже 10 :( Да и не надо. 5 не получится - следующая частота 2.5 MHz (Tcy/16) PIC запущен на 40 MHz (10mips), в процессе програмирования DataFlash он будет закачивать массив из CPLD и выгружать его обратно на максимальной скорости. Никакой дополнительной обработки передаваемых данных не нужно, так что PIC может успеть все передать и на 10 MHz SPI. С другой стороны запись переданного массива в DF потребует соизмеримого времени, так что скорость собственно передачи не очень критична, ну и черт с ней.
-
'Поиграться и отсимулировать' можно, но если я не знаю какие задержки реально допускает PIC, то с чем я буду играться? Да и 10 MHz это тоже не очень мало - в текущем варианте разводки CPLD есть задержки около 80ns, что явно больше, чем можно :( Собственно CPLD соединяет 3 устройства - PIC/DataFlash/JTAG (Xilinx FPGA). Скорость нужна на связке DF->JTAG для ускорения процесса загрузки FPGA. Загружаться будет под управлением внешней тактовой частоты (25 MHz) непосредственно из DF в FPGA JTAG, минуя PIC. Так что скорость работы самого PIC'а не критична, но так как другая часть коммутатора явно будет работать более чем в 2 раза быстрее, то хотелось бы и PIC запустить на максимальной скорости, осталось только выяснить, какая она, максимальная.
-
Я как бы догадываюсь, что работать будет (хотя по datasheet'у и не должно), меня очень интересует какие на этой частоте есть запасы по времянкам - у меня этот SPI проходит через комутатор на CPLD (XC9572XL) и мне надо определится, смогу ли я заставить это все работать на 10 MHz, или придется понижать тактовую.
-
Порт открывается в overlapped режиме В порт записывают в overlapped режиме - Что означает ошибку записи, я даже знаю какую - ERROR_IO_PENDING, что означает что операция записи все еще выполняется, как вы и хотели (иначе зачем нужно было открывать порт в overlapped режиме). См. MSDN, функции GetOverlappedResult и WaitForSingleObject
-
Читаю даташиты от PIC18F45J10 и не могу понять - то ли у меня проблемы с арифметикой, то ли в них написан какой то бред :( В DS39682C написано (параграф 15.3.5, страница 150), что максимальная частота обмена по SPI (в мастер моде) Fosc/4, т.е. 10 MHz (что явно написано в качестве примера прямо в тексте - 10 Mbps) Т.е. длительность одного бита - 100ns. Далее, смотрю на диаграммы и времена SPI (figure 23-11 & table 23-15 на странице 318) Смотрю времена установки и удержания входных данных по отношению к клоку (SDIx/SCKx) - не менее 100ns+100ns, итого 200ns, что в 2 раза превышает длительность одного бита (т.е. скорость обмена не должна быть меньше 5 MHz) Кому верить?