Перейти к содержанию
    

Синтезаторы.LeonardoSpeectrum.

Как я понял, программное обеспечение "третьих фирм", позволядет в части синтеза ПЛИС

обходиться одним пакетом.

Несомненное достоинство ПЛИС (по крайней мере для меня) является возможность назначить

конкретные выводы микросхемы для опредкленных портов (и не только это).

В связи с полной проходимость (мимо в ЛИКБЕЗЕ) иностранных языков (в т.ч. английского),

прошу прояснить ряд вопросов по пакету LeoonardoSpectrum: (как понимаете вопросов

будет больше по мере ответов (если они будут)).

1. Имеется ли возможность в данном пакете в каком-то файле (или в может быть в различных для

производителей ПЛИС разных фирм) назначить конкретные выводы для портов (хотя-бы самого

верхнего уровня проекта)? Если это возможно, прошу поделиться знаниями, и привести примеры

(если есть различия для разных производителей то вместе с расширением файла, его "шапки" и т.д.)

хотя-бы для одного порта ( а если возможно то и это как-то влияет на синтексез то для in. out. in-out/

tri-state).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял, программное обеспечение "третьих фирм", позволядет в части синтеза ПЛИС

обходиться одним пакетом.

Несомненное достоинство ПЛИС (по крайней мере для меня) является возможность назначить

конкретные выводы микросхемы для опредкленных портов (и не только это).

В связи с полной проходимость (мимо в ЛИКБЕЗЕ) иностранных языков (в т.ч. английского),

прошу прояснить ряд вопросов по пакету LeoonardoSpectrum: (как понимаете вопросов

будет больше по мере ответов (если они будут)).

1. Имеется ли возможность в данном пакете в каком-то файле (или в может быть в различных для

производителей ПЛИС разных фирм) назначить конкретные выводы для портов (хотя-бы самого

верхнего уровня проекта)? Если это возможно, прошу поделиться знаниями, и привести примеры

(если есть различия для разных производителей то вместе с расширением файла, его "шапки" и т.д.)

хотя-бы для одного порта ( а если возможно то и это как-то влияет на синтексез то для in. out. in-out/

tri-state).

Назначения пинов, у Altera в частности, производится в Квартусе, думаю у других производителей это делается тоже в тех же пакетах которые занимаются place & route (разводкой кристалла).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Назначения пинов, у Altera в частности, производится в Квартусе, думаю у других производителей это делается тоже в тех же пакетах которые занимаются place & route (разводкой кристалла).

 

Привет!

Если я не ошибаюсь - назначения пинов можно делать и в VHDL-описаниях (с помощью аттрибутов).

Изменено пользователем Victor®

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Назначения пинов, у Altera в частности, производится в Квартусе, думаю у других производителей это делается тоже в тех же пакетах которые занимаются place & route (разводкой кристалла).

 

Привет!

Если я не ошибаюсь - назначения пинов можно делать и в VHDL-описаниях (с помощью аттрибутов).

 

Я об этом тоже где-то вскользь читал, но не пробовал. Было бы очень интересно, не можете уточнить?

Интересно попробовать. Хотя, гложут сомнения в практической ценности и работоспособности. Это же надо чтоб инфу о распиновке через нетлист протащить и потом корректно ее схавать в конце.

 

Опять же, в том же квартусе можно делать разные распиновки для разных камней, как в этом случае быть с едиными исходниками на HDL?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без фирменного трассировщика все равно не обойтись. Стоимость комплекта разработчика (включая синтезатор) от производителя ПЛИС меньше, чем комплекта от "третьих фирм", но оно менее удобное. Хотя чаще обновляется. В VHDL и Verilog я делал назначение выводов через атрибуты. Но не факт, что эти атрибуты у разных производителей ПЛИС совпадают.

Изменено пользователем beg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без фирменного трассировщика все равно не обойтись. Стоимость комплекта разработчика (включая синтезатор) от производителя ПЛИС меньше, чем комплекта от "третьих фирм", но оно менее удобное. Хотя чаще обновляется. В VHDL и Verilog я делал назначение выводов через атрибуты. Но не факт, что эти атрибуты у разных производителей ПЛИС совпадают.

 

А без трассировщика от производителя камней по-любому не обойтись, и даже не по указанным Вами причинам :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как заставить Leonardo понимать примитивы из ISE , в частности из библиотеки UNISIM ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как заставить Leonardo понимать примитивы из ISE , в частности из библиотеки UNISIM ?

 

Вы неправильно ставите вопрос.

Зачем козе баян? Зачем заставлять Леонардо что-то понимать из ISE?

 

Пошагово:

Вы решили синтезировать в стороннем синтезаторе (а чем Вам родной XST не угодил?).

Пусть это будет Леонардо. Вы в нем выбрали (точно выбрали?), что синтезировать будете для Ксилинкса.

Написали исходники на VHDL. Синтезировали. Получили нетлист (EDIF), который затем скормили Place&Route утилите. В конце концов получили прошивку.

И где же тут место для какой-либо "примитивы из ISE , в частности из библиотеки UNISIM " ?

 

Другое дело, если Вы хотите использовать например Корегенератор или спецовые несинтезируемые штуки (типа двунаправленных пинов ДДР). Тогда их надо указывать как "черные ящики" - это для синтеза. А маппер потом с ними разберется. И никаких проблем.

 

Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как заставить Leonardo понимать примитивы из ISE , в частности из библиотеки UNISIM ?

 

Вообще вместе с ISE в директории %Xilinx%\vhdl\src\unisims\ идут исходники этой библиотеки. Там есть пакет VCOMPONENTS, в котором есть объявления всех необходимых Вам компонентов. Используйте его, а остальное сделают транслятор и мэппер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить.

 

Пробовал проект с PICOBLAZE под XilinxISE 8.2.3, где использовались примитивы из UNISIM : KCPSM3, fdce, MUX5.

При использовании синтезатора XST все прошло на ура, при использовании Leonardo получаю следующие сообщения:

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 326: Error, 'FDR' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 332: Error, 'LUT4' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 342: Error, 'FDR' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 348: Error, 'FD' is not a component.

.........................................................................

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 503: Error, 'LUT4' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 513: -- Sorry, too many errors

 

Process "Synthesize - Leonardo Spectrum" failed

имею ввиду, что в KCPSM3 используются примитивы из UNISIM.

java script:emoticon(':cranky:', 'smid_11')

:cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить.

 

Пробовал проект с PICOBLAZE под XilinxISE 8.2.3, где использовались примитивы из UNISIM : KCPSM3, fdce, MUX5.

При использовании синтезатора XST все прошло на ура, при использовании Leonardo получаю следующие сообщения:

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 326: Error, 'FDR' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 332: Error, 'LUT4' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 342: Error, 'FDR' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 348: Error, 'FD' is not a component.

.........................................................................

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 503: Error, 'LUT4' is not a component.

"D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 513: -- Sorry, too many errors

 

Process "Synthesize - Leonardo Spectrum" failed

имею ввиду, что в KCPSM3 используются примитивы из UNISIM.

java script:emoticon(':cranky:', 'smid_11')

:cranky:

 

 

Ну вот все и прояснилось. Сделайте как Макс сказал выше.

Но зачем Леонардо? Особенно если XST работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще вместе с ISE в директории %Xilinx%\vhdl\src\unisims\ идут исходники этой библиотеки. Там есть пакет VCOMPONENTS, в котором есть объявления всех необходимых Вам компонентов. Используйте его, а остальное сделают транслятор и мэппер.

Спасибо!

Все модули, включающие примитивы, включают строки:

library UNISIM;

use UNISIM.VComponents.all;

-Этого достаточно?

При этом в пакетном режиме из под ISE и XST и Synplify синтезируют на ура, а Leonardo дает ошибки.

Однако, если запустить Leonardo автономно, и в Advanced Flow Tabs нажать кнопку Load Library, то

синтез проходит штатно.

Что надо сделать, чтобы синтез проходил в Leonardo из под ISE ?

java script:emoticon(':cranky:', 'smid_11')

:cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет!

Если я не ошибаюсь - назначения пинов можно делать и в VHDL-описаниях (с помощью аттрибутов).

.

.

Я об этом тоже где-то вскользь читал, но не пробовал. Было бы очень интересно, не можете уточнить?

Интересно попробовать. Хотя, гложут сомнения в практической ценности и работоспособности. Это же надо чтоб инфу о распиновке через нетлист протащить и потом корректно ее схавать в конце.

 

library ieee;
  use ieee.std_logic_1164.all;

package pin is  
--******************************************************
    attribute altera_chip_pin_lc     : string;
    attribute syn_useioff           : boolean;
    attribute syn_noclockbuf        : boolean;
--******************************************************
    constant PIN_GCLK           : string :=    "@55";
    constant PIN_GRES         : string :=    "@140";
    constant PIN_MAD        : string :=    "@14,@13,@12,@11,@10,@9,@8,@7";     --AD[7:0]
    constant PIN_MA        : string :=    "@20,@21,@26,@27,@28,@29,@30,@31";--A[15:8]    
    constant PIN_MALE        : string :=    "@19";
    constant PIN_MRD        : string :=    "@32";
    constant PIN_MWR        : string :=    "@33";
--******************************************************
end package;
package body pin is end package body;

library ieee;
    use ieee.std_logic_1164.all;
library work;
    use work.pin.all;

entity tkfl is
port
    (    
--|******************************************************
--|                Global signal
--|******************************************************
     GCLK                     : in          std_logic
;GRES                    : in          std_logic
--|******************************************************
--|                Embedded MCU signal
--|******************************************************
;MAD                    : inout        std_logic_vector(7 downto 0)
;MA                    : in         std_logic_vector(7 downto 0)
;MALE                    : in        std_logic
;MRD                    : in        std_logic
;MWR                    : in        std_logic
--|******************************************************
--|       End of port declaration   
--|******************************************************
        ); 

--|******************************************************
--|                attaching signal to chip pin
--|******************************************************
    attribute altera_chip_pin_lc of GCLK              : signal is PIN_GCLK;
    attribute altera_chip_pin_lc of GRES                : signal is PIN_GRES;

    attribute altera_chip_pin_lc of MAD                : signal is PIN_MAD;
    attribute altera_chip_pin_lc of MA                : signal is PIN_MA;
    attribute altera_chip_pin_lc of MALE                : signal is PIN_MALE;
    attribute altera_chip_pin_lc of MRD                : signal is PIN_MRD;
    attribute altera_chip_pin_lc of MWR                : signal is PIN_MWR;
--|******************************************************
--|       End of pin constraint
--|******************************************************
end tkfl;

вот так, более чем тривиально, сие делается для синплифи и альтеры.

для зайлинкса синтаксис немного другой.

 

с леонардо лет 5-ть не работал, но помнится там тоже такое есть

 

удачи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...