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

Ква Pin Planer

Добавляю к проекту с циклоном 5 DDR3.

 

Причем в топ-левеле объявлены пины:

 

inout                [3:0]        ddr3t_dqs_p, 
    inout                [3:0]        ddr3t_dqs_n,

 

 

Тоже самое и в примере с отладкой.

 

Вот только когда в pin-planer указываешь что ddr3t_dqs_p[3] - диффсигнал, автоматом создается ddr3t_dqs_p[3](n). И соответствттствтвссвенно я уже не могу сигналу ddr3t_dqs_n[3] назначить пин. А вот на отладке это сделано и нет никаких ddr3t_dqs_p[3](n).

 

Как можно указать пинпланеру, что для ddr3t_dqs_p[3] парным является ddr3t_dqs_n[3]?

 

 

 

 

 

 

 

 

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


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

Добавляю к проекту с циклоном 5 DDR3.

 

Причем в топ-левеле объявлены пины:

 

inout                [3:0]        ddr3t_dqs_p, 
    inout                [3:0]        ddr3t_dqs_n,

 

 

Тоже самое и в примере с отладкой.

 

Вот только когда в pin-planer указываешь что ddr3t_dqs_p[3] - диффсигнал, автоматом создается ddr3t_dqs_p[3](n). И соответствттствтвссвенно я уже не могу сигналу ddr3t_dqs_n[3] назначить пин. А вот на отладке это сделано и нет никаких ddr3t_dqs_p[3](n).

 

Как можно указать пинпланеру, что для ddr3t_dqs_p[3] парным является ddr3t_dqs_n[3]?

 

 

Ему нужно указать что он LVDS, а остальное он сам догадается. К сожалению нельзя назначать какие пины парные. Они такие аппаратно.

 

Не через пин-планер.

(* altera_attribute = "-name IO_STANDARD \"LVDS\" " *) (* chip_pin = "J8" *) output DAC_DDS_DATA_CLK;

Это для просто DDR

 

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


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

Как это нельзя? Откройте проект из примеров с отладкой и удивитесь - там все назначено!

Я бы и не запаривался, но в топ-левеле на память должны идти и ddr3t_dqs_p и ddr3t_dqs_n. А если ква сам назначает парный пин, то как его нафиг заведешь куда-то...

 

Может я вообще зря запариваюсь. Но тогда поясните мне, кто пользовался DDR3, куда подключать выходы модуля, сооответствтствасвуюющие сигналам _n.

Вот кусо кода, где подключен qsys, чё пишем вместо "???????????????"?:

qsys1 q1
(
    .clk_in0_clk(clk10_100MHz_p),
    .reset_in0_reset_n(global_reset_n),
    //ddre
    .ddr3t_mem_a(ddr3t_a),
    .ddr3t_mem_ba(ddr3t_ba),
    .ddr3t_mem_ck(ddr3t_clk_p),
    .ddr3t_mem_ck_n(??????????????????????????),
    .ddr3t_mem_cke(ddr3t_cke),
    .ddr3t_mem_cs_n(ddr3t_csn),
    .ddr3t_mem_dm(ddr3t_dm),
    .ddr3t_mem_ras_n(ddr3t_rasn),
    .ddr3t_mem_cas_n(ddr3t_casn),
    .ddr3t_mem_we_n(ddr3t_wen),
    .ddr3t_mem_reset_n(ddr3t_resetn),
    .ddr3t_mem_dq(ddr3t_dq),
    .ddr3t_mem_dqs(ddr3t_dqs_p),
    .ddr3t_mem_dqs_n(???????????????????????????????????????),
    .ddr3t_mem_odt(ddr3t_odt),
    .ddr3t_oct_rzqin(rzqin),
    .ddr3t_oct_sharing_seriesterminationcontrol(),
    .ddr3t_oct_sharing_parallelterminationcontrol()
);

 

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


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

Как это нельзя? Откройте проект из примеров с отладкой и удивитесь - там все назначено!

Я бы и не запаривался, но в топ-левеле на память должны идти и ddr3t_dqs_p и ddr3t_dqs_n. А если ква сам назначает парный пин, то как его нафиг заведешь куда-то...

 

Там Пин-планер в этом смысле чудной. Лучше всего назначить _p, а остальное прописать руками в qsf или просто забить - обычно проатывает.

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


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

pin planer - он для "посмотреть-проверить".

Да, им можно назначать пины, но не обязательно именно им. Даже наоборот, лучше всего вообще не им, а import assignments и затягивать qsf с готовой распиновкой. Современные Electo-CAD умеют их формировать, а дальше они кочуют из проекта в проект.

А специфичные сигналы, дифпары, fakes, mimics и прочие хитрые вещи лучше вообще явно реализовывать через примитивы, как это делают сами альтеровцы в IP-корках.

 

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


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

Как это нельзя? Откройте проект из примеров с отладкой и удивитесь - там все назначено!

Я бы и не запаривался, но в топ-левеле на память должны идти и ddr3t_dqs_p и ddr3t_dqs_n. А если ква сам назначает парный пин, то как его нафиг заведешь куда-то...

 

Но ведь для DQS сигналов эти пины парами действительно аппаратно сделаны.

Вы их хотите разделить?

 

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


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

Я себе представлял так:

в топлевеле объявляем для дифсигнала только один сигнал, например, ddr3t_dqs_p. При назначении конкретного пина и указания что он дифференциальный автоматически назначится парный.

Но тогда какого хрена надо подать на вход ddr3t_dqs_n мегафункции ддр3?

Вот я и прописал в qsf ddr3t_dqs_n, может это и не правильно (во всяком случае пока не работает:)))

 

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


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

HDL - это Hardware Definition Language - язык описания аппаратуры, а не язык автоматизированной волшебной телепатии.

Два пина = два сигнала, потом подключаете их к соответствующему примитиву.

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


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

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

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

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

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

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

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

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

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

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