реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблема с добавлением IP Core в проект
RinettaFox
сообщение Apr 14 2016, 14:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286



Здравствуйте!
Не могу решить следующую проблему:
Цитата
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
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Apr 14 2016, 14:10
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(RinettaFox @ Apr 14 2016, 17:01) *
Не могу решить следующую проблему:

Он же написал
Цитата
Multi-source in Unit <top> on signal <control<3>>; this signal is connected to multiple drivers.

Т.е. 3 разряд сигнала control имеет в качестве входного драйвера несколько источников, чего быть не может, т.е. скорее всего перепутали input/output. Приведите для всех модулей часть кода с описанием портов.
Go to the top of the page
 
+Quote Post
RinettaFox
сообщение Apr 14 2016, 14:31
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286



Да вроде верно все.

Код
`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
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 14 2016, 19:33
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Внутри вашей ПЛИС нет буферов с z-состоянием. Вывод - нельзя использовать inout внутри ПЛИС. Вывод - пересматривайте дизайн вашей схемы. Посмотрите как организована шина wishbone.
Go to the top of the page
 
+Quote Post
RinettaFox
сообщение Apr 15 2016, 01:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286



Возможно как-то использование этих IP Core для моей программы на этой ПЛИС, если буферы с z-состоянием отсутствуют?
Так же в моем коде выходным сигналам должны присваиваться в некоторых местах именно z-состояния.
Объясните пожалуйста подробнее. Программирую на ПЛИС не так давно, мне не совсем понятно.

Сообщение отредактировал RinettaFox - Apr 15 2016, 01:52
Go to the top of the page
 
+Quote Post
likeasm
сообщение Apr 15 2016, 06:08
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673



Цитата(RinettaFox @ Apr 15 2016, 05:50) *
Так же в моем коде выходным сигналам должны присваиваться в некоторых местах именно z-состояния.

Буферы ввода-вывода с третим(z) состоянием имеются только на портах ввода-вывода. Иными словами вы можете использовать inout или out с z-состоянием только в top модуле, но никак не во внутренних. Такова аппаратная архитектура современных ПЛИС.

Цитата(RinettaFox @ Apr 15 2016, 05:50) *
Возможно как-то использование этих IP Core для моей программы на этой ПЛИС

В том виде, в котором делаете вы, нельзя, так как шина control двунаправленная. Разделите прием и передачу на две независимые шины.

Сообщение отредактировал likeasm - Apr 15 2016, 08:45
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Apr 15 2016, 07:43
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(RinettaFox @ Apr 15 2016, 04:50) *
Возможно как-то использование этих IP Core для моей программы на этой ПЛИС, если буферы с z-состоянием отсутствуют?
Так же в моем коде выходным сигналам должны присваиваться в некоторых местах именно z-состояния.
Объясните пожалуйста подробнее. Программирую на ПЛИС не так давно, мне не совсем понятно.

Что Вам требуется реализовать, конкретизируйте задачу? По поводу z - состояния ответили. Как правильно подключать в описании смотрите соседнюю ветку http://electronix.ru/forum/index.php?showtopic=134801 , пост 5.
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 15 2016, 12:01
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Справедливости ради надо отметить, что синтезатор (XST) пытается шины с Z состоянием преобразовать в набор мультиплексоров. Так что иногда шины с 3мя состояниями внутри FPGA работать будут (несмотря на их физическое отсуствие в кристале), но в вашем случае синтезатор не справился (вы соединили вместе 3 двунаправленных порта и еще неизвестно что за ними стояло внутри модулей).
Go to the top of the page
 
+Quote Post
RinettaFox
сообщение Apr 16 2016, 03:45
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286



Спасибо всем за ответ, буду разбираться сейчас.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Apr 16 2016, 10:35
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Принцип работы 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.
Go to the top of the page
 
+Quote Post
RinettaFox
сообщение Apr 17 2016, 09:07
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286



Да, спасибо, я сама уже это поняла. Подключила ILA и VIO через два разных порта CONTROL. Все заработало. Но в ILA и VIO нужно было порт CONTROL изменить с inout на input. Без этого не работало. Почему так?

И еще такой вопрос. Сейчас пытаюсь включить анализатор, но он требует подсоединить кабель. Мне нужно проверить сначала не на реальной плате, а через VIO. Как его правильно настроить? Не нашла как.

Сообщение отредактировал RinettaFox - Apr 17 2016, 09:16
Go to the top of the page
 
+Quote Post
kira66
сообщение May 18 2016, 16:25
Сообщение #12





Группа: Участник
Сообщений: 12
Регистрация: 16-03-16
Из: Питер
Пользователь №: 90 885



Цитата(RinettaFox @ Apr 17 2016, 12:07) *
И еще такой вопрос. Сейчас пытаюсь включить анализатор, но он требует подсоединить кабель. Мне нужно проверить сначала не на реальной плате, а через VIO. Как его правильно настроить? Не нашла как.


Чипскоп не на реальной плате? Это что-то новое. Чипскоп работает только на реальной физической плате, для остального есть моделирование.
Возможно, в заблуждение вводят слова "виртуальный ввод-вывод". Виртуальность здесь только в том, что кнопки и индикаторы не физические, а программные sm.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01459 секунд с 7
ELECTRONIX ©2004-2016