ViKo 1 19 августа, 2016 Опубликовано 19 августа, 2016 · Жалоба В Quartus я могу писать в verilog файле: (* chip_pin = "2, 3, 4, 6, 7, 8, 28, 30, 31, 32, 33, 34, 42, 43, 44, 46", altera_attribute = "-name io_standard \"2.5 V\"; -name weak_pull_up_resistor on" *) inout [15:0] ADB, // Address-Data Bus А как можно в Vivado задать в исходнике свойства и размещение выводов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 28 19 августа, 2016 Опубликовано 19 августа, 2016 · Жалоба Приветствую! В Quartus я могу писать в verilog файле: ... А как можно в Vivado задать в исходнике свойства и размещение выводов? А зачем!? Пины и другие земные физические атрибуты в исходнике ЗЛО! :krapula: Но если наскучила спокойная "семейная" жизнь с файлами constaint и очень очень хочется - то в Vivado теперь можно попробовать поизвращатся например так module top ... (* CHIP_PIN = "B52", CHEGO_XOTITE="MIR_TEBE" *) input wire pcie_preset_n , (* CHIP_PIN = "a5,a6,a7,a8,b9,b10,b11,b12", IO_STANDART="TTL2_5", CHEGO_XOTYTE="VIG_VAM" *) input wire [ 7:0] pcie_rx_p , ... endmodule # auto_izvrat_pin_constaint.tcl #... set pins_list [get_ports -filter {CHIP_PIN!=""}] foreach pin_name $pins_list { set pin_obj [get_ports $pin_name] set pin_loc [split [get_property CHIP_PIN $pin_obj] ","] if {[llength $pin_loc]==1} { puts "set_property LOC $pin_loc $pin_obj" } elseif {[llength $pin_loc] > 1} { if {[regexp {(\w+)\[\s*(\d+)\s*\]} $pin_name -> name bus_idx]} { set nloc_idx [expr [llength $pin_loc] - 1 - $bus_idx] set pin_nloc [lindex $pin_loc $nloc_idx] puts "set_property LOC $pin_nloc $pin_obj" } { puts "Error! regexp $pin_obj" } } } set pins_list [get_ports -filter {CHEGO_XOTYTE!=""}] #... Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться