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

Помогите "чайнику"!

Добрый день, уважаемые коллеги.

Есть квартусовский проектик на VHDL под Altera EPM3064. На сколько реально, если да, то на сколько сложно и как лучше перевести этот проектик под Xilinx XC9572?

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


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

Думаю реально. Кристаллы вроде небольшие, трудоемкость тоже должна быть небольшой.

НО: не видя самого проекта, точно никто Вам не скажет.

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


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

Думаю реально. Кристаллы вроде небольшие, трудоемкость тоже должна быть небольшой.

НО: не видя самого проекта, точно никто Вам не скажет.

Спасибо, приаттачил проектик под EPM3064. Просто если с Альтерами хоть чуть ковырялся и то, в основном только в "схематике", то Xilinx только пару раз прошивал... Буду очень благодарен за помощь.

PhoenixSD.rar

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


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

Разводится в Xilinx ISE 13.3 нормально только надо немного поправить(файл приложен).

И потом XC9572 - это 5-вольтовые мс. В новых проектах лучше использовать XC9572XL-

они сильно дешевле и 3.3в, как и EPM3064

PhoenixSD.vhd

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


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

Создаете проект в ISE, добавляете два vhd файла и запускаете имплиментацию. Ничего архитектуро-зависимого у вас нет.

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


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

Добрый день, уважаемые коллеги.

Есть квартусовский проектик на VHDL под Altera EPM3064. На сколько реально, если да, то на сколько сложно и как лучше перевести этот проектик под Xilinx XC9572?

 

На прямую VHDL в ISE не компилит?

 

или вот так

http://project-ideas-yaroslav.blogspot.com...01_archive.html

http://project-ideas-yaroslav.blogspot.com...01_archive.html

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


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

Мужики, спасибо за помощь, советы/подсказки! ISE уже поставил на закачку на работе, скачал пару книжек в эл. виде - бум вникать.

XC9572 именно XL, просто микра дома была, я последние буквы не помнил. Как я понял, Xilinx'ы до 10000 циклов перезаписи держат, в отличии от 100 у Altera? "Слабоваты", как-то Альтеры в этом плане(по кол-ву перепрошивок).

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


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

Разводится в Xilinx ISE 13.3 нормально только надо немного поправить(файл приложен).

gk2, подскажите ещё, пожалуйста, как перепривязать пины отнотительно сигналов и насколько критично и чем чревато предупреждение:

"WARNING:Xst:2183 - Unit PhoenixSD: the following tristate(s) are NOT replaced by logic (Please refer to Answer Record 20048 for more information): , D<1>_MLTSRCEDGE."?

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


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

gk2, подскажите ещё, пожалуйста, как перепривязать пины отнотительно сигналов и насколько критично и чем чревато предупреждение:

"WARNING:Xst:2183 - Unit PhoenixSD: the following tristate(s) are NOT replaced by logic (Please refer to Answer Record 20048 for more information): , D<1>_MLTSRCEDGE."?

 

Добрый день.

Добавьте в проект файл с расширением <любое имя>.ucf и в нем опишите расположение выводов в виде, где n - номер пина:

NET "AB<0>" LOC = "n" ; # n - номер пина AB - шина

NET "AB<1>" LOC = "" ;

NET "AB<2>" LOC = "" ;

 

NET "C2I" LOC = "" ; # одиночные сигналы

NET "C2O" LOC = "" ;

NET "CLK20" LOC = "" ;

 

можно писать и без кавычек

 

после полной компиляции отчет о расположении выводов получите в файле с расширением .pad

и в файле с именем головного файла и расширением txt

Удачи

P.S. Предупреждение связано с тем, что в зависимости от ситуации САПР может заменять встречающиеся описания буферов с третьим состоянием на логический мультиплексор или не заменять. В основном это бывает связано с тем, что в некоторых сериях чипов таких буферов нет в принципе. В вашем случае САПР замену не производил.

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


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

Добрый день.

Добавьте в проект файл с расширением <любое имя>.ucf и в нем опишите расположение выводов в виде, где n - номер пина:

NET "AB<0>" LOC = "n" ; # n - номер пина AB - шина

NET "AB<1>" LOC = "" ;

NET "AB<2>" LOC = "" ;

 

NET "C2I" LOC = "" ; # одиночные сигналы

NET "C2O" LOC = "" ;

NET "CLK20" LOC = "" ;

 

можно писать и без кавычек

 

после полной компиляции отчет о расположении выводов получите в файле с расширением .pad

и в файле с именем головного файла и расширением txt

Удачи

P.S. Предупреждение связано с тем, что в зависимости от ситуации САПР может заменять встречающиеся описания буферов с третьим состоянием на логический мультиплексор или не заменять. В основном это бывает связано с тем, что в некоторых сериях чипов таких буферов нет в принципе. В вашем случае САПР замену не производил.

 

Andrew Su, спасибо за разъяснения. Просто в Квартусе это проще и нагляднее делается. А тут - полазил и кристалл с привязками виден только в Xilinx PACE и толком не понял как чего.

Сейчас открыл проект по новой (после компиляции), таблица "Design Object List - I/O Pins", колонка "Loc", хотя бы привязки к пинам появились вида "Pn", где n - номер пина. Ещё в проекте появился файлик .ucf, там как раз PINLOCK'и описаны. Это то или нет?

Ещё вопрос по правке .pad файла - "IO Bank Number" ISE сам ставит?

Или мне достаточно в .pad файле, например, вместо:

P1|D<1>|I/O|I/O|BIDIR|||||||||
P2|nWR|I|I/O|INPUT|||||||||
P3|D<2>|I/O|I/O|BIDIR|||||||||
P4|nM1|I|I/O|INPUT|||||||||
P5|CLC|GCK/I|I/O/GCK1||||||||||

написать так:

P4|D<1>|I/O|I/O|BIDIR|||||||||
P3|nWR|I|I/O|INPUT|||||||||
P2|D<2>|I/O|I/O|BIDIR|||||||||
P1|nM1|I|I/O|INPUT|||||||||
P5|CLC|GCK/I|I/O/GCK1||||||||||

и перекомпилить проект?

_____________________

Сорри ступил, т.к. невнимательно прочитал.

Вот фрагмент моего .ucf:

NET "A<0>"           LOC =  "S:PIN34";
NET "A<1>"           LOC =  "S:PIN26";
NET "A<2>"           LOC =  "S:PIN28";
NET "A<3>"           LOC =  "S:PIN36";
NET "A<4>"           LOC =  "S:PIN27";
NET "A<5>"           LOC =  "S:PIN33";
NET "A<6>"           LOC =  "S:PIN44";
NET "A<7>"           LOC =  "S:PIN24";
NET "CLC"             LOC =  "S:PIN5";

И как я понимаю, тут такие же, как в альтеровских кристаллах ограничения по нек. пинам(только вход или выход, тактовые)? И с учетом этого я тупо меняю, например, NET "A<6>" LOC = "S:PIN44", на NET "A<6>" LOC = "S:PIN<какой_мне_нужен>" и все.

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


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

WARNING:Xst:2183 - Unit ........ - это он ругается на эти строки:

 

D <= SPI_DO when PORT_57_RDSTB = '1' else "ZZZZZZZZ";

D(1 downto 0) <= "00" when PORT_77_RDSTB = '1' else "ZZ";

 

Получается что D(1) и D(0) разных источников соединены по 3-ему состоянию.

 

Если записать так:

 

D(7 downto 2) <= SPI_DO(7 downto 2) when PORT_57_RDSTB = '1' else "ZZZZZZ";

D(1 downto 0) <= SPI_DO(1 downto 0) when PORT_57_RDSTB = '1' else "00" when PORT_77_RDSTB = '1' else "ZZ";

 

то получится мультиплексор и на выходе буфер с 3 состояниями и синтезатор сообщений не выдает.

 

 

Ограничения по пинам - все могут быть всем(в других семействах Xilinx по другому), клок- желательно подавать на выделенные клоковые входы, сброс и разрешение выходов тоже;

если нет - будут гораздо худшие параметры быстодействия

 

В UCF - файле можно писать проще: NET "A<6>" LOC = "44"

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

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


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

WARNING:Xst:2183 - Unit ........ - это он ругается на эти строки:

 

D <= SPI_DO when PORT_57_RDSTB = '1' else "ZZZZZZZZ";

D(1 downto 0) <= "00" when PORT_77_RDSTB = '1' else "ZZ";

 

Получается что D(1) и D(0) разных источников соединены по 3-ему состоянию.

 

Если записать так:

 

D(7 downto 2) <= SPI_DO(7 downto 2) when PORT_57_RDSTB = '1' else "ZZZZZZ";

D(1 downto 0) <= SPI_DO(1 downto 0) when PORT_57_RDSTB = '1' else "00" when PORT_77_RDSTB = '1' else "ZZ";

 

то получится мультиплексор и на выходе буфер с 3 состояниями и синтезатор сообщений не выдает.

Спасибо, теперь все ОК!

 

Ограничения по пинам - все могут быть всем(в других семействах Xilinx по другому), клок- желательно подавать на выделенные клоковые входы, сброс и разрешение выходов тоже;

если нет - будут гораздо худшие параметры быстодействия

 

В UCF - файле можно писать проще: NET "A<6>" LOC = "44"

По "спец-пинам" у меня получилось так:

GCK1, GCK2- "свободные".

GCK3 - клок от "головной системы" - 14МГц

GSR - системный СБРОС - /RES

GTS1 - A0

GTS2 - A1.

 

Все взято по образу и подобию проекта на EPM3064.

Остальные пины - как удобно для разводки платы.

Остались "свободными" ещё 4 пина.

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


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

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

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

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

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

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

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

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

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

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