Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос назначения пинов из проекта в проект Quartus
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Acvarif
Имеется проект Quartus90 с назначенными пинами. Создан другой проект на том же девайсе, но назначения пинов там должны быть те же.
Как можно перенести назначения пинов из первого проекта во второй, чтобы не заниматься ручной рутиной?
В который раз пытаюсь с этим разобраться. Не получается.
ViKo
Цитата(Acvarif @ Dec 17 2012, 16:12) *
В который раз пытаюсь с этим разобраться. Не получается.

В который раз пишу одно и то же. Altera attribute. Если, конечно, вы пишете на Verilog, VHDL.
Код
/** Clock 250MHz **/
  (* chip_pin = "89",
    altera_attribute = "-name global_signal on; -name io_standard lvds" *)
  input            PLDC,

/** ADC1 **/
  (* chip_pin = "98, 101, 120, 126, 128, 132, 143, 10",
     altera_attribute = "-name io_standard lvds; -name pad_to_input_register_delay 0", useioff = 1 *)
  input [7:0]        S1D,
Acvarif
Цитата(ViKo @ Dec 17 2012, 17:21) *
В который раз пишу одно и то же. Altera attribute. Если, конечно, вы пишете на Verilog, VHDL.

Верхнеуровневый файл сделан на Verilog. Атрибутами не пользовался.
Но я имел ввиду назначения пинов в пинпланере.
Перенос назначений из пинпланера одного проекта в пинпланер другого.
Если кроме использования атрибутов нет другого выхода то тогда дело табак. Это та же ручная рутина.
Alex11
Берете файлик .qsf из старого проекта, копируете оттуда назначение ножек и вставляете в .qsf от нового. После этого запускаете квартус и проверяете в планере, что все сошлось.
vadimp61
Цитата(Acvarif @ Dec 17 2012, 17:12) *
Имеется проект Quartus90 с назначенными пинами. Создан другой проект на том же девайсе, но назначения пинов там должны быть те же.
Как можно перенести назначения пинов из первого проекта во второй, чтобы не заниматься ручной рутиной?
В который раз пытаюсь с этим разобраться. Не получается.

Import (Export) Assigment, я так делал.
Acvarif
Цитата(vadimp61 @ Dec 17 2012, 18:07) *
Берете файлик .qsf из старого проекта, копируете оттуда назначение ножек и вставляете в .qsf от нового. После этого запускаете квартус и проверяете в планере, что все сошлось.
Import (Export) Assigment, я так делал.

Спасибо. Попробую и так и так.
slawikg
Цитата
Имеется проект Quartus90 с назначенными пинами. Создан другой проект на том же девайсе, но назначения пинов там должны быть те же.
Как можно перенести назначения пинов из первого проекта во второй, чтобы не заниматься ручной рутиной?
В который раз пытаюсь с этим разобраться. Не получается.


Создайте новую версию проекта proekt/revisions/create , все назначения сохраняться.
gosu-art
Коллеги помогите разобраться rolleyes.gif Пытаюсь назначить пины в ТОПлевеле квартуса для массива
Код
(*chip_pin = "k1,k2,j1,j2,t15,r14,t14,r13,p8,n8,d6,n3,l13,k12,n12,p11,m7,p6,n6,p3,l10,m10,
t3,r3,l4,g5,f3,d3,t10,r7,t7,t6" *)        

                            input            [3:0]    adc_din [7:0],

Но почему то он не назначает их. Как правильно это делается?
ViKo
Цитата(gosu-art @ Feb 3 2014, 12:53) *
input [3:0] adc_din [7:0],
Но почему то он не назначает их. Как правильно это делается?

Каждый из 4-х adc_din[] отдельно назначить попробуйте.
gosu-art
Цитата(ViKo @ Feb 3 2014, 13:00) *
Каждый из 4-х adc_din[] отдельно назначить попробуйте.

Вы имели ввиду так?
Код
(*chip_pin = "k1,k2,j1,j2" *)        
                            
            (*chip_pin = "t15,r14,t14,r13" *)                                
                            
            (*chip_pin = "p8,n8,d6,n3" *)                                
                            
            (*chip_pin = "l13,k12,n12,p11" *)                                
                            
            (*chip_pin = "m7,p6,n6,p3" *)                                
                            
            (*chip_pin = "l10,m10,t3,r3" *)                                
                            
            (*chip_pin = "l4,g5,f3,d3" *)                                
                            
            (*chip_pin = "t10,r7,t7,t6" *)                                
                            input            [3:0]    adc_din [7:0],

Тоже не работает crying.gif
SM
наоборот попробуйте

input xxxx (* chip_pin .... *),

или по старинке, /* synthesis altera_chip_pin_lc="@t15,@r14,....." */ - но тоже ПОСЛЕ описания input-а
или input xxxx /* synthesis chip_pin = "t15,r14,..." */;
ViKo
Цитата(gosu-art @ Feb 3 2014, 13:13) *
Вы имели ввиду так?

Нет. Просто каждый из adc_din[] в своей строке.
upd. Проверьте, правильно ли вы написали
input [3:0] adc_din [7:0]
Может, нужно
input [7:0] adc_din[3:0]
Я забыл...
gosu-art
Цитата(ViKo @ Feb 3 2014, 13:18) *
upd. Проверьте, правильно ли вы написали
input [3:0] adc_din [7:0]
Может, нужно
input [7:0] adc_din[3:0]
Я забыл...


У меня массив [7:0] unpacked, c вектором [3:0] как мне и нужно. Все работает если руками назначить в assignment editore

Цитата(SM @ Feb 3 2014, 13:18) *
наоборот попробуйте
input xxxx /* synthesis chip_pin = "t15,r14,..." */;

Код
input            [3:0]    adc_din [7:0] /* synthesis chip_pin = "k1,k2,j1,j2, t15,r14,t14,r13, p8,n8,d6,n3, l13,k12,n12,p11, m7,p6,n6,p3, l10,m10,t3,r3, l4,g5,f3,d3, t10,r7,t7,t6" */    ,

тоже не хочет
SM
Цитата(gosu-art @ Feb 3 2014, 14:53) *
тоже не хочет


только заметил... у Вас там "," после input... Это значит, что Вы описываете все внутри module (), синтаксисом SV. Сделайте по-вериложному, в модуле только список портов, а input/output отдельно, после, и с назначениями пинов.
ViKo
Да, там же в Квартусе радиокнопка SystemVerilog-2005, стоит?
И вообще, что пишет?
gosu-art
Цитата
Critical Warning (169085): No exact pin location assignment(s) for 32 pins of 96 total pins
Info (169086): Pin adc_din[0][2] not assigned to an exact location on the device

галочка - да, стоит SV.
Че то не хочится переделывать под Verilog TOP. Ладно пока руками забью
ViKo
Цитата(gosu-art @ Feb 3 2014, 14:40) *
Че то не хочится переделывать под Verilog TOP. Ладно пока руками забью

И разбить массив на отдельные векторы не хотите?
Может, не все те пины доступны, что вы задаете?
Кстати, Квартус ругается на конкретный бит!
gosu-art
Цитата(ViKo @ Feb 3 2014, 15:01) *
И разбить массив на отдельные векторы не хотите?
Может, не все те пины доступны, что вы задаете?
Кстати, Квартус ругается на конкретный бит!

У меня там generate, for (), удобно сделано. Можно конечно объявить вектор 31:0 а потом логически наложить на logic [3:0] adc_data [7:0]. Но пока так оставлю.
Ругается он на все элементы массива. просто весь варнинг не стал выкладывать.

Собственно так и сделал.
Код
(*chip_pin = "k1,k2,j1,j2, t15,r14,t14,r13, p8,n8,d6,n3, l13,k12,n12,p11, m7,p6,n6,p3, l10,m10,t3,r3, l4,g5,f3,d3, t10,r7,t7,t6" *)                                    
                    
                        input            [31:0]    adc_data_in,


Код
logic [3:0]    adc_din [7:0];

always_comb begin
    adc_din[0] = adc_data_in[3:0];
    adc_din[1] = adc_data_in[7:4];
    adc_din[2] = adc_data_in[11:5];
    adc_din[3] = adc_data_in[15:12];
    adc_din[4] = adc_data_in[19:16];
    adc_din[5] = adc_data_in[23:20];
    adc_din[6] = adc_data_in[27:24];
    adc_din[7] = adc_data_in[31:28];
end

Тупо. но работает rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.