PAB
Свой-
Постов
85 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о PAB
-
Звание
Частый гость
-
QuestaSim 10.0a_1 и SystemVerilog
PAB опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Добрый день! Имеется таск, предназначенный для приема пакета данных с некоторой шины, на которой возможен таймаут: task automatic dp_rxpkt( input bit [1:0] list_type, input bit response_act, ref bit fsls_rcv, ref bit fs_vplus, ref bit fs_vminus ); bit [6:0] timeout; wait(fs_vplus & !fs_vminus); //wait for IDLE state fork : timeout_or_pkt_receiption while(timeout < 73) begin : count_timeout @(posedge fs_clk); if(!response_act) timeout++; if(timeout == 72) $display("Timeout limit is reached. Device not responding @%0t", $time); end : count_timeout begin : normal_pkt_receiption wait(!fs_vplus & fs_vminus); ......... ......... end : normal_pkt_receiption join_any : timeout_or_pkt_receiption disable timeout_or_pkt_receiption; endtask QuestaSim 10.0a_1 ругается на строчку wait(!fs_vplus & fs_vminus); следующими словами: ** Error: (vlog-LRM-2295) Arguments passed by reference cannot be used within fork-join_any or fork_join_none blocks Почитал стандарт (IEEE1800-2009), не нашёл в нём ограничений на использование в блоках fork-join_any и fork-join_none переменных, передающихся по ссылке. QuestaSim 6.6b такой таск проглатывает нормально. Баг 10-ой версии квесты? -
uploads/DOCs/SystemVerilog/05354441.pdf
-
разработчик цифровых устройств(verilog)
PAB ответил alee тема в Предлагаю работу
Мне интересно ваше предложение. Куда выслать резюме? -
Требуется электромонтёр для работы
PAB ответил PAB тема в Предлагаю работу
вакансия ещё открыта -
ууупс, невнимательность :laughing:
-
А писАть на деревню дедушке? :)
-
Речь идёт об американских рублях
-
Требуется электромонтёр для работы
PAB опубликовал тема в Предлагаю работу
Плодо-овощному объединению ЗАО "Кузьминское" требуется элетромонтёр для постоянной работы в качестве оперативно-ремонтного персонала. Требования: Наличие группы IV свыше 1000В по электробезопасности Средне-специальное или высшее электротехническое образование Харакер работы: эксплуатация и ремонт электрооборудования 3-х трансформаторных подстанций напряжением 10/0,4 кВ. Зарплата: 25000-27000р. Адрес: Москва, Рязанский проспект, д. 4а (м. Рязанский проспект) Контактный телефон: 89859236731, Борис Петрович -
clocking block в SystemVerilog
PAB ответил PAB тема в Языки проектирования на ПЛИС (FPGA)
Я вроде делаю всё по стандарту. Пункт 15.14 (Synchronous drives), на стр.191 фраза: The event_count uses syntax similar to the cycle-delay operator (see Section 15.10), however the synchronous drive uses the clocking block of the signal being driven and not the default clocking. Попробовал с default'ным clocking блоком - результат тот же, ошибки остались. P.S. Ваша конструкция (repeat (n) @INTERF.cb) работает, но всё-таки хотелось бы использовать synchronous drives, т.к. просто влом писать repeat (n) @INTERF.cb; INTERF.cb.signal <= value; вместо: ##n INTERF.cb.signal <= value; -
clocking block в SystemVerilog
PAB опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Пытаюсь использовать задержу на несколько тактов clocking блока: program test(Rx_iol.TB Rx, ...); initial begin ........... ##2 Rx.cb.valid <= 1; ........... end ...... endprogram Однако QuestaSim 6.3d выдаёт ошибку: # ** Error: A default clocking block must be specified to use the ##n timing statement. Не понимаю, зачем определять дефолтный clocking блок если в интерфейсе Rx_iol определён клок, по которому должна происходить задержка: interface Rx_iol(input logic clk); logic [31:0] data; logic ready, valid; clocking cb @(posedge clk); output data, valid; input ready; endclocking modport DUT (input data, valid, output ready); modport TB (clocking cb); endinterface : Rx_iol Может кто подскажет, в чём проблема? -
Так вроде уже лежит /upload/Books/verilog/IEEE_1800-2007.pdf
-
В чём отличие IEEE1800-2007 от IEEE1800-2005?
-
Последовательность пакетов на USB
PAB ответил PAB тема в RS232/LPT/USB/PCMCIA/FireWire
Я аппаратный анализатор протокола и имел ввиду когда говорил, что неплохо бы было увидеть пакеты. А программный естественно пакеты показать не сможет (разве что содержимое пакетов данных, да и то без идентификаторов и crc). -
Последовательность пакетов на USB
PAB ответил PAB тема в RS232/LPT/USB/PCMCIA/FireWire
да, протокол он показывает, но на уровне запросов, а не на уровне пакетов (а хотелось бы посмотреть именно последовательность пакетов т.к. в них могут быть какие-нибудь ошибки поскольку хост не покупной, а свой на ПЛИСине )) ) Может я чего не так понимаю, но из моего опыта запрос SetAddress проходит так: 1. Хост шлёт SETUP пакет по адресу=0 2. Хост шлёт пакет данных, в котором записан присваиваемый адрес устройства 3. Устройство отвечает ACK (может, не с первого раза, после нескольких NAKов) 4. Хост шлёт token in пакет по адресу 0 5. Устройство отвечает пакетом нулевой длины 6. Хост отправляет ACK После этого к девайсу можно обращаться по назначенному адресу Самая обычная клавиатура Genius. Я НИКОГДА не встречал USB клавиатур, работающих на full-speed. P.S. Мою первоначальную проблему удалось решить. Проблема была в том, что я (то есть хост) неправильно формировал преамбулу (к преамбуле добавлял последовательностью end-of-packet = 2*se0 + j - я думал, что преамбула такой же пакет как и все другие). -
Последовательность пакетов на USB
PAB ответил PAB тема в RS232/LPT/USB/PCMCIA/FireWire
Я уверен, что пакеты идут к low-speed устройству (поскольку они предваряются преамбулами). В моём случае только одно low-speed устройство - клавиатура. Программный анализатор протокола увы не удастся подцепить поскольку всё это хозяйство проверяется на машине, работающей под линуксом. По поводу запроса SetAddress: я и не утверждаю, что это первый запрос к устройству; я говорю лишь о том, что ситуация, когда в хаб передаются пакеты с преамбулами и до клавиатуры эти пакеты не доходят, происходит при запросе SetAddress. Возможна ли ситуация, когда этот запрос является первым?