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

Доброго времени суток!

Возник вопрос. Принимаю и выдаю LVDS сигналы в проекте. Пишу на VHDL'e используя альтеровские буфера ALT_INBUF_DIFF и ALT_OUTBUF_DIFF. Банки Multivoltage. т.е. где есть входы LVDS есть выходы с уровненм LVTTL 3.3V.

1 - ALT_INBUF_DIFF ругается и выдается ошибку что выход не подцеплен (который уходит дальше в проект). вот листинг места где ругается.

u0: For a in 0 to 47 generate

begin

s0: component ALT_INBUF_DIFF port map (i => SIG_2FPGA_P(a),ibar => SIG_2FPGA_N(a), o =>SIG2FPGA(a));

end generate;

Выходной сигнал обозначен signal SIG2FPGA : STD_LOGIC_VECTOR (47 downto 0):= (others => '0'); все равно ругается что - Error (12174): Port "O" of instance "u0:0:s0" of type ALT_INBUF_DIFF is not connected

 

2 - сделал qsf полуавтоматически из Альтиума подредактировав руками

set_location_assignment PIN_L7 -to MEZ_O2FPGA_P[10]

set_location_assignment PIN_K6 -to "MEZ_O2FPGA_N[10](n)"

set_instance_assignment -name IO_STANDARD LVDS -to MEZ_O2FPGA_P[10]

Но в пин планере выдается вообще чушь - пины 'N' не цепляет и делает не LVDS а 2.5 Default.

 

Прошу дать совета) до этого работал в ISE, но пришлось пересесть с Xilinx на Altera, и как то тяжко идет))))

Заранее спасибо за ответ!

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


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

Доброго времени суток!

Возник вопрос. Принимаю и выдаю LVDS сигналы в проекте. Пишу на VHDL'e используя альтеровские буфера ALT_INBUF_DIFF и ALT_OUTBUF_DIFF. Банки Multivoltage. т.е. где есть входы LVDS есть выходы с уровненм LVTTL 3.3V.

1 - ALT_INBUF_DIFF ругается и выдается ошибку что выход не подцеплен (который уходит дальше в проект). вот листинг места где ругается.

u0: For a in 0 to 47 generate

begin

s0: component ALT_INBUF_DIFF port map (i => SIG_2FPGA_P(a),ibar => SIG_2FPGA_N(a), o =>SIG2FPGA(a));

end generate;

Выходной сигнал обозначен signal SIG2FPGA : STD_LOGIC_VECTOR (47 downto 0):= (others => '0'); все равно ругается что - Error (12174): Port "O" of instance "u0:0:s0" of type ALT_INBUF_DIFF is not connected

 

2 - сделал qsf полуавтоматически из Альтиума подредактировав руками

set_location_assignment PIN_L7 -to MEZ_O2FPGA_P[10]

set_location_assignment PIN_K6 -to "MEZ_O2FPGA_N[10](n)"

set_instance_assignment -name IO_STANDARD LVDS -to MEZ_O2FPGA_P[10]

Но в пин планере выдается вообще чушь - пины 'N' не цепляет и делает не LVDS а 2.5 Default.

 

Прошу дать совета) до этого работал в ISE, но пришлось пересесть с Xilinx на Altera, и как то тяжко идет))))

Заранее спасибо за ответ!

 

Я обычно завожу только один сигнал, а не 'p' и 'n' на верхний уровень. Quartus все делает сам опираясь на io standard

 

то есть

MEZ_O2FPGA : in std_logic_vector(47 downto 0)

питание банка с LVDS все-таки должно быть 2.5 V

 

Будьте готовы к тому, что далеко не каждая ножка/пара может быть в Альтере LVDS.

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


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

Я обычно завожу только один сигнал, а не 'p' и 'n' на верхний уровень. Quartus все делает сам опираясь на io standard

 

то есть

MEZ_O2FPGA : in std_logic_vector(47 downto 0)

питание банка с LVDS все-таки должно быть 2.5 V

 

Будьте готовы к тому, что далеко не каждая ножка/пара может быть в Альтере LVDS.

 

Я знаю что не каждая нога может быть LVDS. Все сделал согналасно datasheet) пользую Cyclone 5GX там определены RX и TX LVDS входы.

А вот по поводу питания - в datasheet сказано что можно если банк 3.3, то входы могут быть LVDS, если LVDS выходы то конечно только 2.5

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


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

1 - ALT_INBUF_DIFF ругается и выдается ошибку что выход не подцеплен (который уходит дальше в проект). вот листинг места где ругается.

u0: For a in 0 to 47 generate

begin

s0: component ALT_INBUF_DIFF port map (i => SIG_2FPGA_P(a),ibar => SIG_2FPGA_N(a), o =>SIG2FPGA(a));

end generate;

Выходной сигнал обозначен signal SIG2FPGA : STD_LOGIC_VECTOR (47 downto 0):= (others => '0'); все равно ругается что - Error (12174): Port "O" of instance "u0:0:s0" of type ALT_INBUF_DIFF is not connected

 

Видимо SIG2FPGA никуда не подключен дальше или не все его биты.

Попробовал повторить то же самое, что у вас.

Сперва использовал

attribute noprune : boolean;

attribute noprune of SIG2FPGA : signal is true;

Но это не помогло, а вот когда направил SIG2FPGA в память (просто первое что попалось), все стало компилиться.

 

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


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

А как правильно то задавать тогда P и N сигналы .

Вот у меня шина SIG2FPGA_P (48 сигналов) и SIG2FPGA_N (48). Если я делаю на автомате в quartus'e SIG2FPGA LVDS, он присваивает и N ногу. Надо ли тогда использовать буфер ALT_INBUF_DIFF ?

Если да то как тогда описать это?

Сейчас у меня для каждого сигнала (n и p) отдельно сделано в пин-планере, LVDS присвоен к P линии

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


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

set_location_assignment PIN_L7 -to MEZ_O2FPGA_P[10]

set_location_assignment PIN_K6 -to "MEZ_O2FPGA_N[10](n)"

set_instance_assignment -name IO_STANDARD LVDS -to MEZ_O2FPGA_P[10]

Но в пин планере выдается вообще чушь - пины 'N' не цепляет и делает не LVDS а 2.5 Default.

У меня в отличии от вашего кода LVDS присвоен еще и к N линии. И выглядит это как то так:

set_location_assignment PIN_L7 -to MEZ_O2FPGA_P[10]

set_location_assignment PIN_K6 -to MEZ_O2FPGA_N[10]

set_instance_assignment -name IO_STANDARD LVDS -to MEZ_O2FPGA_P[10]

set_instance_assignment -name IO_STANDARD LVDS -to MEZ_O2FPGA_N[10]

 

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


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

Спасибо переделаю...

Вопрос тогда, я так понял что банк с LVDS я должен питать от 2.5 и только. т.е. если я сделаю LVDS только входы, а банк питается от 3.3 - то это не прокатbn.. в Xilinx'e переваривал LVDS входы в банке 3.3

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


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

Почитал как я понял Cyclone VGX такого не допускает..ели LVDS то 2,5

Вопрос другой - откомпилировал проект, сделав assigments как сказал Sergey_Bekrenyov

т.е. не указав пины P и N типа. а сделав просто бас SIG2FPGA. а не 2 разных (для P и для N).

Вопрос тогда - если он так все скушал, то он сам прицепил буфер ALT_OUTBUF_DIFF ? т.е. я сразу могу ипсользовать сигналы SIG2FPGA в логике?

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


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

Вопрос тогда - если он так все скушал, то он сам прицепил буфер ALT_OUTBUF_DIFF ? т.е. я сразу могу ипсользовать сигналы SIG2FPGA в логике?

Ну да.

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


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

Вопрос еще -

чип Cyclone V 5CGXBC5C6F27C7

Если я хочу сделать комбинаторную логику, может быть счетчик импульсов, использую LVDS входы, ни о каких SERDES речь не идет, тактовые сигнал беру с банка 3B, пины являются GCLK.

LVDS входы по всем банкам распределены. Могу ли я использовать 1 тактовый сигнал как GCLK для всего чипа, или стоит каждый банк(регион) "питать" своим клоком (можно размножить от генератора).В даташите написано можно, если не использовать SERDES.

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


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

Вопрос еще -

чип Cyclone V 5CGXBC5C6F27C7

Если я хочу сделать комбинаторную логику, может быть счетчик импульсов, использую LVDS входы, ни о каких SERDES речь не идет, тактовые сигнал беру с банка 3B, пины являются GCLK.

LVDS входы по всем банкам распределены. Могу ли я использовать 1 тактовый сигнал как GCLK для всего чипа, или стоит каждый банк(регион) "питать" своим клоком (можно размножить от генератора).В даташите написано можно, если не использовать SERDES.

Если у Вас нет необходимости использования нескольких PLL, то можете.

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


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

Есть Cyclone V GX Starter Kit, на банк с удобными для эксперимента LVDS_RX пинами разведено питание 3,3 В. ПЛИС не сгорит ? (неохота для эксперимента "на коленке" покупать HSMC за 8 тыр...)

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

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


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

Есть Cyclone V GX Starter Kit, на банк с удобными для эксперимента LVDS_RX пинами разведено питание 3,3 В. ПЛИС не сгорит ? (неохота для эксперимента "на коленке" покупать HSMC за 8 тыр...)

Сгореть не сгорит но как то это не правильно.В LVDS значение Vos = 1,25В , у Вас же из-за нестандартного питания Vos будет завышено. Чем будете формировать такой нестандартный сигнал?

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


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

В LVDS значение Vos = 1,25В , у Вас же из-за нестандартного питания Vos будет завышено. Чем будете формировать такой нестандартный сигнал?

LVDS_RX хочу использовать, как аналоговый компаратор, для быстрого первичного эксперимента.

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


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

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

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

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

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

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

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

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

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

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