RinettaFox 0 14 апреля, 2016 Опубликовано 14 апреля, 2016 · Жалоба Здравствуйте! Не могу решить следующую проблему: ERROR:Xst:528 - Multi-source in Unit <top> on signal <control<3>>; this signal is connected to multiple drivers. Подключаю ICON, VIA и ILA. Код топового файла следующий: (Привожу часть кода, где используется переменная control) `timescale 1ns / 1ps module top ( input clk, // опорный сигнал input enable, // кнопка output reg block_5V, // снятие блокировки output reg [4:0] cod, // код output reg comand, // команда output reg ready // готовность ); wire [19:0] kod1; // массив исходных значений последовательностей кодов wire [19:0] kod2; wire [19:0] kod3; wire [19:0] kod4; wire [19:0] kod5; reg [4:0] i; // счетчик последовательностей кодов reg [20:0] cnt; // счетчик для установления времени интервалов wire [35:0] control; sourse sourse ( .clk(clk), .kod1(kod1), .kod2(kod2), .kod3(kod3), .kod4(kod4), .kod5(kod5) ); ipcore_icon_verilog ICON ( .CONTROL0 (control) ); ipcore_ila_verilog ILA ( .CLK (clk), .CONTROL (control), .TRIG0 (block_5V), .TRIG1 (cod), .TRIG2 (comand), .TRIG3 (ready), .TRIG4 (enable) ); ipcore_vio_verilog VIO ( .CLK (clk), .CONTROL (control) ); endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 14 апреля, 2016 Опубликовано 14 апреля, 2016 · Жалоба Не могу решить следующую проблему: Он же написал Multi-source in Unit <top> on signal <control<3>>; this signal is connected to multiple drivers. Т.е. 3 разряд сигнала control имеет в качестве входного драйвера несколько источников, чего быть не может, т.е. скорее всего перепутали input/output. Приведите для всех модулей часть кода с описанием портов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RinettaFox 0 14 апреля, 2016 Опубликовано 14 апреля, 2016 · Жалоба Да вроде верно все. `timescale 1ns / 1ps module ipcore_icon_verilog( inout [35:0] CONTROL0 ); ipcore_icon ICON ( .CONTROL0(CONTROL0) // INOUT BUS [35:0] ); endmodule `timescale 1ns / 1ps module ipcore_ila_verilog( inout [35:0] CONTROL, input CLK, input TRIG0, input [4:0] TRIG1, input TRIG2, input TRIG3, input TRIG4 ); ipcore_ila ILA ( .CONTROL(CONTROL), // INOUT BUS [35:0] .CLK(CLK), // IN .TRIG0(TRIG0), // IN BUS [0:0] .TRIG1(TRIG1), // IN BUS [4:0] .TRIG2(TRIG2), // IN BUS [0:0] .TRIG3(TRIG3), // IN BUS [0:0] .TRIG4(TRIG4) // IN BUS [0:0] ); endmodule `timescale 1ns / 1ps module ipcore_vio_verilog( inout [35:0] CONTROL, input CLK, input [7:0] SYNC_IN, output [7:0] SYNC_OUT ); ipcore_vio VIO ( .CONTROL(CONTROL), // INOUT BUS [35:0] .CLK(CLK), // IN .SYNC_IN(SYNC_IN), // IN BUS [7:0] .SYNC_OUT(SYNC_OUT) // OUT BUS [7:0] ); endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 14 апреля, 2016 Опубликовано 14 апреля, 2016 · Жалоба Внутри вашей ПЛИС нет буферов с z-состоянием. Вывод - нельзя использовать inout внутри ПЛИС. Вывод - пересматривайте дизайн вашей схемы. Посмотрите как организована шина wishbone. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RinettaFox 0 15 апреля, 2016 Опубликовано 15 апреля, 2016 (изменено) · Жалоба Возможно как-то использование этих IP Core для моей программы на этой ПЛИС, если буферы с z-состоянием отсутствуют? Так же в моем коде выходным сигналам должны присваиваться в некоторых местах именно z-состояния. Объясните пожалуйста подробнее. Программирую на ПЛИС не так давно, мне не совсем понятно. Изменено 15 апреля, 2016 пользователем RinettaFox Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 15 апреля, 2016 Опубликовано 15 апреля, 2016 (изменено) · Жалоба Так же в моем коде выходным сигналам должны присваиваться в некоторых местах именно z-состояния. Буферы ввода-вывода с третим(z) состоянием имеются только на портах ввода-вывода. Иными словами вы можете использовать inout или out с z-состоянием только в top модуле, но никак не во внутренних. Такова аппаратная архитектура современных ПЛИС. Возможно как-то использование этих IP Core для моей программы на этой ПЛИС В том виде, в котором делаете вы, нельзя, так как шина control двунаправленная. Разделите прием и передачу на две независимые шины. Изменено 15 апреля, 2016 пользователем likeasm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Возможно как-то использование этих IP Core для моей программы на этой ПЛИС, если буферы с z-состоянием отсутствуют? Так же в моем коде выходным сигналам должны присваиваться в некоторых местах именно z-состояния. Объясните пожалуйста подробнее. Программирую на ПЛИС не так давно, мне не совсем понятно. Что Вам требуется реализовать, конкретизируйте задачу? По поводу z - состояния ответили. Как правильно подключать в описании смотрите соседнюю ветку http://electronix.ru/forum/index.php?showtopic=134801 , пост 5. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Справедливости ради надо отметить, что синтезатор (XST) пытается шины с Z состоянием преобразовать в набор мультиплексоров. Так что иногда шины с 3мя состояниями внутри FPGA работать будут (несмотря на их физическое отсуствие в кристале), но в вашем случае синтезатор не справился (вы соединили вместе 3 двунаправленных порта и еще неизвестно что за ними стояло внутри модулей). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RinettaFox 0 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба Спасибо всем за ответ, буду разбираться сейчас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 16 апреля, 2016 Опубликовано 16 апреля, 2016 · Жалоба Принцип работы tristate буфера здесь вообще ни при чём! У ICON модуля шина CONTROL нужна для управления, например, лог.анализатором ILA. Связкой ICON + ILA я когда-то пользовался, всё синтезировалось и работало, нужно просто соединить CONTROL от одного ядра к другому. Но у вас тут появился VIO. И что-то мне кажется, что нельзя ICON подключать одновременно на ILA и на VIO через одни CONTROL порт. В этом и конфликт. На просторах xilinx форума вычитал это: Please note that each ICON core can have multiple ILA cores by generating an ICON core with multiple CONTROL ports (one CONTROL port per ILA instance). В вашем случае, по идее на один порт вешается ILA, а на другой VIO. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RinettaFox 0 17 апреля, 2016 Опубликовано 17 апреля, 2016 (изменено) · Жалоба Да, спасибо, я сама уже это поняла. Подключила ILA и VIO через два разных порта CONTROL. Все заработало. Но в ILA и VIO нужно было порт CONTROL изменить с inout на input. Без этого не работало. Почему так? И еще такой вопрос. Сейчас пытаюсь включить анализатор, но он требует подсоединить кабель. Мне нужно проверить сначала не на реальной плате, а через VIO. Как его правильно настроить? Не нашла как. Изменено 17 апреля, 2016 пользователем RinettaFox Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kira66 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба И еще такой вопрос. Сейчас пытаюсь включить анализатор, но он требует подсоединить кабель. Мне нужно проверить сначала не на реальной плате, а через VIO. Как его правильно настроить? Не нашла как. Чипскоп не на реальной плате? Это что-то новое. Чипскоп работает только на реальной физической плате, для остального есть моделирование. Возможно, в заблуждение вводят слова "виртуальный ввод-вывод". Виртуальность здесь только в том, что кнопки и индикаторы не физические, а программные :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться