tyro 0 7 августа, 2006 Опубликовано 7 августа, 2006 · Жалоба Как я понял, программное обеспечение "третьих фирм", позволядет в части синтеза ПЛИС обходиться одним пакетом. Несомненное достоинство ПЛИС (по крайней мере для меня) является возможность назначить конкретные выводы микросхемы для опредкленных портов (и не только это). В связи с полной проходимость (мимо в ЛИКБЕЗЕ) иностранных языков (в т.ч. английского), прошу прояснить ряд вопросов по пакету LeoonardoSpectrum: (как понимаете вопросов будет больше по мере ответов (если они будут)). 1. Имеется ли возможность в данном пакете в каком-то файле (или в может быть в различных для производителей ПЛИС разных фирм) назначить конкретные выводы для портов (хотя-бы самого верхнего уровня проекта)? Если это возможно, прошу поделиться знаниями, и привести примеры (если есть различия для разных производителей то вместе с расширением файла, его "шапки" и т.д.) хотя-бы для одного порта ( а если возможно то и это как-то влияет на синтексез то для in. out. in-out/ tri-state). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvu 0 16 августа, 2006 Опубликовано 16 августа, 2006 · Жалоба Как я понял, программное обеспечение "третьих фирм", позволядет в части синтеза ПЛИС обходиться одним пакетом. Несомненное достоинство ПЛИС (по крайней мере для меня) является возможность назначить конкретные выводы микросхемы для опредкленных портов (и не только это). В связи с полной проходимость (мимо в ЛИКБЕЗЕ) иностранных языков (в т.ч. английского), прошу прояснить ряд вопросов по пакету LeoonardoSpectrum: (как понимаете вопросов будет больше по мере ответов (если они будут)). 1. Имеется ли возможность в данном пакете в каком-то файле (или в может быть в различных для производителей ПЛИС разных фирм) назначить конкретные выводы для портов (хотя-бы самого верхнего уровня проекта)? Если это возможно, прошу поделиться знаниями, и привести примеры (если есть различия для разных производителей то вместе с расширением файла, его "шапки" и т.д.) хотя-бы для одного порта ( а если возможно то и это как-то влияет на синтексез то для in. out. in-out/ tri-state). Назначения пинов, у Altera в частности, производится в Квартусе, думаю у других производителей это делается тоже в тех же пакетах которые занимаются place & route (разводкой кристалла). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LV26 0 18 августа, 2006 Опубликовано 18 августа, 2006 (изменено) · Жалоба Назначения пинов, у Altera в частности, производится в Квартусе, думаю у других производителей это делается тоже в тех же пакетах которые занимаются place & route (разводкой кристалла). Привет! Если я не ошибаюсь - назначения пинов можно делать и в VHDL-описаниях (с помощью аттрибутов). Изменено 18 августа, 2006 пользователем Victor® Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvu 0 18 августа, 2006 Опубликовано 18 августа, 2006 · Жалоба Назначения пинов, у Altera в частности, производится в Квартусе, думаю у других производителей это делается тоже в тех же пакетах которые занимаются place & route (разводкой кристалла). Привет! Если я не ошибаюсь - назначения пинов можно делать и в VHDL-описаниях (с помощью аттрибутов). Я об этом тоже где-то вскользь читал, но не пробовал. Было бы очень интересно, не можете уточнить? Интересно попробовать. Хотя, гложут сомнения в практической ценности и работоспособности. Это же надо чтоб инфу о распиновке через нетлист протащить и потом корректно ее схавать в конце. Опять же, в том же квартусе можно делать разные распиновки для разных камней, как в этом случае быть с едиными исходниками на HDL? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beg 0 18 августа, 2006 Опубликовано 18 августа, 2006 (изменено) · Жалоба Без фирменного трассировщика все равно не обойтись. Стоимость комплекта разработчика (включая синтезатор) от производителя ПЛИС меньше, чем комплекта от "третьих фирм", но оно менее удобное. Хотя чаще обновляется. В VHDL и Verilog я делал назначение выводов через атрибуты. Но не факт, что эти атрибуты у разных производителей ПЛИС совпадают. Изменено 18 августа, 2006 пользователем beg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvu 0 19 августа, 2006 Опубликовано 19 августа, 2006 · Жалоба Без фирменного трассировщика все равно не обойтись. Стоимость комплекта разработчика (включая синтезатор) от производителя ПЛИС меньше, чем комплекта от "третьих фирм", но оно менее удобное. Хотя чаще обновляется. В VHDL и Verilog я делал назначение выводов через атрибуты. Но не факт, что эти атрибуты у разных производителей ПЛИС совпадают. А без трассировщика от производителя камней по-любому не обойтись, и даже не по указанным Вами причинам :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 17 января, 2007 Опубликовано 17 января, 2007 · Жалоба А как заставить Leonardo понимать примитивы из ISE , в частности из библиотеки UNISIM ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 17 января, 2007 Опубликовано 17 января, 2007 · Жалоба А как заставить Leonardo понимать примитивы из ISE , в частности из библиотеки UNISIM ? Вы неправильно ставите вопрос. Зачем козе баян? Зачем заставлять Леонардо что-то понимать из ISE? Пошагово: Вы решили синтезировать в стороннем синтезаторе (а чем Вам родной XST не угодил?). Пусть это будет Леонардо. Вы в нем выбрали (точно выбрали?), что синтезировать будете для Ксилинкса. Написали исходники на VHDL. Синтезировали. Получили нетлист (EDIF), который затем скормили Place&Route утилите. В конце концов получили прошивку. И где же тут место для какой-либо "примитивы из ISE , в частности из библиотеки UNISIM " ? Другое дело, если Вы хотите использовать например Корегенератор или спецовые несинтезируемые штуки (типа двунаправленных пинов ДДР). Тогда их надо указывать как "черные ящики" - это для синтеза. А маппер потом с ними разберется. И никаких проблем. Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 222 17 января, 2007 Опубликовано 17 января, 2007 · Жалоба А как заставить Leonardo понимать примитивы из ISE , в частности из библиотеки UNISIM ? Вообще вместе с ISE в директории %Xilinx%\vhdl\src\unisims\ идут исходники этой библиотеки. Там есть пакет VCOMPONENTS, в котором есть объявления всех необходимых Вам компонентов. Используйте его, а остальное сделают транслятор и мэппер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 17 января, 2007 Опубликовано 17 января, 2007 · Жалоба Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить. Пробовал проект с 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 18 января, 2007 Опубликовано 18 января, 2007 · Жалоба Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить. Пробовал проект с 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 работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 18 января, 2007 Опубликовано 18 января, 2007 · Жалоба Вообще вместе с 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 19 января, 2007 Опубликовано 19 января, 2007 · Жалоба Привет! Если я не ошибаюсь - назначения пинов можно делать и в 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-ть не работал, но помнится там тоже такое есть удачи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться