eugeny_bt 0 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба Здравствуйте. Описание на верилоге содержит регистр data_1: // Ожидание разрешения чтения o_nRFS и прием последовательного кода iSDATA wire i_SDATA; assign i_SDATA = GPIO_0[6]; reg [15:0] data_1; // *** always @(negedge o_sclk or negedge KEY[0]) begin if (!KEY[0]) data_1 <= 0; else begin if (!o_nRFS) begin data_1[0] <= i_SDATA; data_1[15:1] <= data_1[14:0]; end end end После компиляции проекта данный регистр есть в окне Node Finder, я вставляю его в редактор временных диграмм, но после моделирования регистр не отображается. В сообщениях нахожу строчки для каждого разряда регистра: Warning: Ignored node in vector source file. Can't find corresponding node name "data_1[15]" in design. Как сделать, чтобы регистр учавствовал в процессе моделирования? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 25 декабря, 2010 Опубликовано 25 декабря, 2010 · Жалоба синтезатор выкинул? сделайте так: (* noprune *)reg [15:0] data_1; а вообще такие вещи моделируются в моделсиме Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shevnnov 0 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба Я бы задумался над корректностью такого описания RTL. Если даже ModelSim выкидывает его, то вопрос что с ним сделает Quartus или аналогичный о Xilinx (вроде ISE - не знаю так как не пользую). Просто есть строгое описание регистра (тригера), которого стоит придерживаться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugeny_bt 0 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Моделсим не выкидывает, там все нормально и все видно. Поставил (* noprune *) рядом с тремя регистрами, которые не отображались - появился лишь один из регистров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Soflover 0 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Моделсим не выкидывает, там все нормально и все видно. Поставил (* noprune *) рядом с тремя регистрами, которые не отображались - появился лишь один из регистров. А этот регистр data_1[15] затем в проекте как-то используется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugeny_bt 0 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Регистр data_1 далее связан еще с цепочкой других внутренних регистров. Пока они внутренние, отображения нет, как только вся цепочка связывается с каким-либо контактом ввода/вывода - внутренние регистры появляются в окне симулятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Soflover 0 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Регистр data_1 далее связан еще с цепочкой других внутренних регистров. Пока они внутренние, отображения нет, как только вся цепочка связывается с каким-либо контактом ввода/вывода - внутренние регистры появляются в окне симулятора. Ну так выведите на свободный контакт и отлаживайтесь, в чем проблемы-то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugeny_bt 0 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Теперь уже и не знаю, чего я так всполошился. Видимо, всего лишь хотел узнать, как это дело решается. Может, какие еще варианты, помимо (* noprune *), есть, или хотя бы услышать, что внутренние регистры действительно не отображаются, пока не вывести на свободный пин, и ничего с этим не поделаешь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 28 декабря, 2010 Опубликовано 28 декабря, 2010 · Жалоба Может, какие еще варианты, помимо (* noprune *), есть, или хотя бы услышать, что внутренние регистры действительно не отображаются, пока не вывести на свободный пин, и ничего с этим не поделаешь. С проектом у Вас проблемы. Конечно, квартус минимизирует логику, но чтобы регистры - это очень надо постараться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugeny_bt 0 11 января, 2011 Опубликовано 11 января, 2011 · Жалоба С проектом у Вас проблемы Можно узнать, в чем именно проблемы? Например, в описании счетчика: reg [3:0] count_5; // *** always @(posedge CLOCK_24[0] or negedge KEY[0]) begin if (!KEY[0]) count_5 <= 0; else begin if (!o_nRFS) count_5 <= count_5 + 1; if (count_5 == 4'b1011) count_5 <= 0; end end если я поставлю директиву (* noprune *) перед count_5, он исправно участвует в отладке. А в описании, которое я уже приводил: // Ожидание разрешения чтения o_nRFS и прием последовательного кода iSDATA wire i_SDATA; assign i_SDATA = GPIO_0[6]; (* noprune *) reg [15:0] data_1; // *** always @(negedge o_sclk or negedge KEY[0]) begin if (!KEY[0]) data_1 <= 0; else begin if (!o_nRFS) begin data_1[0] <= i_SDATA; data_1[15:1] <= data_1[14:0]; end end end (* noprune *) перед data_1 не позволяет увидеть его в окне при моделировании. А есть вот такой кусочек описания: // Запись полученного кода в регистр data_2, когда чтение запрещено (* noprune *) reg [15:0] data_2; always @(posedge CLOCK_24[0] or negedge KEY[0]) begin if (!KEY[0]) data_2 <= 0; else if (o_nRFS == 1'b1) data_2 <= data_1; end в котором я переписываю информацию из одного регистра в другой (не знаю, что здесь является проблемой проекта), и в котором при записи (* noprune *) перед data_2 позволяет увидеть в отладчике только первые 15 бит 16-и разрядного регистра. Почему 16-й разряд не виден? Смысл директивы (* noprun *), насколько я понял, в том, чтобы выход регистра не висел в воздухе, а был связан с этим же регистром - заводился бы на вход регистра, грубо говоря. Быть может, через мультиплексор. Тогда все регистры для этой директивы одинаковы, а на деле выходит не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 12 января, 2011 Опубликовано 12 января, 2011 · Жалоба Можно узнать, в чем именно проблемы? Почему 16-й разряд не виден? Может быть, все-таки 16-й разряд никакого влияния не оказывает на работу схемы? Задача ПЛИС - что-то принять по входам, обработать, и что-то выдать наружу. Если на прием входных сигналов или выдачу выходных этот разряд не влияет, то он будет выброшен синтезатором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться