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

-=HermiT=-

Свой
  • Постов

    59
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о -=HermiT=-

  • Звание
    Участник
    Участник
  • День рождения 14.07.1984

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Вроде, так и получается: из параметров, объявленных для блока, мы с помощью функции def_WA получаем параметры для памяти, содержащейся в блоке. Или я не так понял?
  2. 0_0 был уверен, что так не сработает Спасибо за подсказку, побежал пробовать :) ps Мне только в архитектуре они нужны :) Работает! Вот такая конструкция получилась: ENTITY RAM_sym_int IS GENERIC( GEN_MODE_FORCE : string := "NO"; GEN_MODE_VALUE : string := "2k"); PORT( CLK : IN std_logic; -- Clock (rising edge) EN : IN std_logic; -- Chip select (active HIGH) WE : IN std_logic; -- Write enable (active HIGH) DI : IN std_logic_vector(5 downto 0); -- Data input ADDR : IN std_logic_vector(12 downto 0); -- Address DO : OUT std_logic_vector(5 downto 0) -- Data output ); END ENTITY RAM_sym_int; -- ARCHITECTURE beh OF RAM_sym_int IS COMPONENT t_RAM_RDFIRST GENERIC ( WD : integer := 64; WA : integer := 9; LEN : integer := 270 ); PORT ( CLK : IN std_logic; EN : IN std_logic; WE : IN std_logic; DI : IN std_logic_vector((WD - 1) downto 0); ADDR : IN std_logic_vector((WA - 1) downto 0); DO : OUT std_logic_vector((WD - 1) downto 0) ); END COMPONENT; -- pragma synthesis_off FOR ALL : t_RAM_RDFIRST USE ENTITY Memories_lib.t_RAM_RDFIRST; -- pragma synthesis_on function def_WA(constant mode_value: string) return integer is begin if (mode_value = "2k") then return 11; elsif (mode_value = "4k") then return 12; else return 13; end if; ---- case mode_value is ---- when "2k" => ---- return 11; ---- when "4k" => ---- return 12; ---- when others => ---- return 13; ---- end case; end function def_WA; constant WA : integer := def_WA(GEN_MODE_VALUE); signal ADDR_i : std_logic_vector((WA - 1) downto 0); BEGIN ADDR_i <= ADDR((WA - 1) downto 0); -- hds hds_inst ram0 : t_RAM_RDFIRST GENERIC MAP ( WD => 6, WA => WA, LEN => 8192 ) PORT MAP ( CLK => CLK, EN => EN, WE => WE, DI => DI, ADDR => ADDR_i, DO => DO ); Конструкция с case, кстати, не сработала... наверное, с стринг вообще не работает
  3. Помогите, пожалуйста, с вопросом в топе. Задача такая. В проекте есть множество generic типа string. Эти generic влияют на параметры памяти: разрядность шины адреса, данных. Например, значения AA = 'apple', 'peer', 'garlic', им должны соответствовать значения ширины шины адреса WA = 9, 8, 7, соответственно. Всего параметров, от которых зависят разрядности 3. От них зависит шина адреса WA и шина данных WD Я пробовал написать с помощью if ... generate, но там код растет в раз 50, а проверить очень сложно. Думал использовать отложенные константы, но они используются только в package. А в package я не смогу передать generic. Есть ли какой-нибудь другой способ?
  4. еще один вопрос Делаю сериалайзер 8:1. Для этого использую два OSERDES. map в ISE 12.3 вываливается с ошибкой: Подключаю эти два блока: Правильно ли я указал DATA_WIDTH => 8 в обоих блоках? Как мне вообще исправить эту ошибку? Ответ на последний вопрос: If you don't set the TRISTATE_WIDTH the default value of 4 will be used, which can be used with a DATA_WIDTH of 8. Try adding DATA_RATE_TQ=SDR TRISTATE_WIDTH=1
  5. Возникла проблема со стыковкой блоков OSERDES и ISERDES. Долго не мог понять в чем дело, пока не обратил внимание, что перевернут порядок данных на входах OSERDES и выходах ISERDES: Т.е. приходится делать так: Пишу под Virtex4. Компоненты беру из unisim 10.1. Так и должно быть или я не заметил какой-то атрибут... или библиотека с ошибкой?
  6. ))) вот и я ничего не нашел. И гугл не помогает
  7. я его назад включил. Без него будет тоже самое, но без строчки WARNING:HDLParsers:3571 - A circular dependency was detected.
  8. Сообщения появляются в окне Console Вот часть из них: Started : "Synthesize - XST". Running xst... Command Line: xst -intstyle ise -ifn "D:/WORK/FPGA/DT/DT_XV5/BOARD_XV5/htg_DTT_v1/ise12/htg_DTT_v1.xst" -ofn "D:/WORK/FPGA/DT/DT_XV5/BOARD_XV5/htg_DTT_v1/ise12/htg_DTT_v1.syr" Reading design: htg_DTT_v1.prj ========================================================================= * HDL Compilation * ========================================================================= WARNING:HDLParsers:3571 - A circular dependency was detected. Found circular dependency consisting of the following items: D:/WORK/FPGA/TN3/BER_lib/hdl/BER_Pre_PS.vhd requires library PS_lib which includes D:/WORK/FPGA/TN3/PS_lib/hdl/data_ram.vhd D:/WORK/FPGA/TN3/PS_lib/hdl/data_ram.vhd requires library Memory_lib which includes D:/WORK/FPGA/TN3/Memory_lib/hdl/RAM_hest.vhd D:/WORK/FPGA/TN3/Memory_lib/hdl/RAM_hest.vhd requires library GDM_lib which includes D:/WORK/FPGA/TN3/GDM_lib/hdl/GDM_ruler.vhd D:/WORK/FPGA/TN3/GDM_lib/hdl/GDM_ruler.vhd requires design unit GDM_lib/const_pkg which is provided by D:/WORK/FPGA/TN3/GDM_lib/hdl/const_pkg.vhd D:/WORK/FPGA/TN3/GDM_lib/hdl/const_pkg.vhd requires library DT_lib which includes D:/WORK/FPGA/TN3/DT_lib/hdl/RRAM.vhd D:/WORK/FPGA/TN3/DT_lib/hdl/RRAM.vhd requires library BER_lib which includes D:/WORK/FPGA/TN3/BER_lib/hdl/BER_Pre_PS.vhd Found circular dependency consisting of the following items: D:/WORK/FPGA/TN3/BER_lib/hdl/BER_Pre_PS.vhd requires library PS_lib which includes D:/WORK/FPGA/TN3/PS_lib/hdl/data_ram.vhd D:/WORK/FPGA/TN3/PS_lib/hdl/data_ram.vhd requires library Memory_lib which includes D:/WORK/FPGA/TN3/Memory_lib/hdl/RAM_hest.vhd D:/WORK/FPGA/TN3/Memory_lib/hdl/RAM_hest.vhd requires library GDM_lib which includes D:/WORK/FPGA/TN3/GDM_lib/hdl/GDM_ruler.vhd D:/WORK/FPGA/TN3/GDM_lib/hdl/GDM_ruler.vhd requires design unit GDM_lib/const_pkg which is provided by D:/WORK/FPGA/TN3/GDM_lib/hdl/const_pkg.vhd D:/WORK/FPGA/TN3/GDM_lib/hdl/const_pkg.vhd requires library DT_lib which includes D:/WORK/FPGA/TN3/DT_lib/hdl/FDM_FCC.vhd D:/WORK/FPGA/TN3/DT_lib/hdl/FDM_FCC.vhd requires library FDM_lib which includes D:/WORK/FPGA/TN3/FDM_lib/hdl/FDM.vhd D:/WORK/FPGA/TN3/FDM_lib/hdl/FDM.vhd requires library DT_lib which includes D:/WORK/FPGA/TN3/DT_lib/hdl/RRAM.vhd D:/WORK/FPGA/TN3/DT_lib/hdl/RRAM.vhd requires library BER_lib which includes D:/WORK/FPGA/TN3/BER_lib/hdl/BER_Pre_PS.vhd Found circular dependency consisting of the following items: D:/WORK/FPGA/TN3/DT_lib/hdl/FDM_FCC.vhd requires library FDM_lib which includes D:/WORK/FPGA/TN3/FDM_lib/hdl/FDM.vhd D:/WORK/FPGA/TN3/FDM_lib/hdl/FDM.vhd requires library DT_lib which includes D:/WORK/FPGA/TN3/DT_lib/hdl/FDM_FCC.vhd Found circular dependency consisting of the following items: D:/WORK/FPGA/TN3/BER_lib/hdl/BER_Pre_PS.vhd requires library PS_lib which includes D:/WORK/FPGA/TN3/PS_lib/hdl/data_ram.vhd D:/WORK/FPGA/TN3/PS_lib/hdl/data_ram.vhd requires library Memory_lib which includes D:/WORK/FPGA/TN3/Memory_lib/hdl/RAM_hest.vhd D:/WORK/FPGA/TN3/Memory_lib/hdl/RAM_hest.vhd requires library GDM_lib which includes D:/WORK/FPGA/TN3/GDM_lib/hdl/GDM_ruler.vhd D:/WORK/FPGA/TN3/GDM_lib/hdl/GDM_ruler.vhd requires design unit GDM_lib/const_pkg which is provided by D:/WORK/FPGA/TN3/GDM_lib/hdl/const_pkg.vhd D:/WORK/FPGA/TN3/GDM_lib/hdl/const_pkg.vhd requires library DT_lib which includes D:/WORK/FPGA/TN3/DT_lib/hdl/FDM_FCC.vhd
  9. это сообщение ни в каких Messages в списке "Errors and Warnings" не появляется. Думаю, фильтрация не отключит само выполнение этой проверки на зависимости
  10. Спасибо :) Но это не совсем то, чего я добивался :). Я так и не смог просинтезировать проект. Уже полчаса ISE выдает сообщения Found circular dependency consisting of the following items: ... названия элементов и библиотек с зависимостями... а к синтезу все никак не перейдет
  11. Попробовал так сделать. Warning больше не появляется, но бесконечно появляются такие сообщения: Found circular dependency consisting of the following items: ... названия элементов и библиотек с зависимостями... Пробовал просинтезировать часть этого большого проекта. Там эти сообщения где-то минуты 2 выскакивали. А тут они без конца
  12. При синтезе проекта в ISE11 и ISE12 возникает: WARNING:HDLParsers:3571 - A circular dependency was detected. В принципе этот warning правильный и зависимости есть. Но проект очень большой и ISE 20 минут (на большее меня не хватило) без конца выдает эти предупреждения. В Precision синтезируется без проблем. Можно ли отключить проверку на circular dependency?
  13. да и даже если запускать скрипты, которые сгенерил MIG3.3 для синтеза в ISE только одного этого контроллера, там тоже будут эти предупреждения (и куча других) Но в общем оно работает. Может оно так и надо в общем я неправильно ваш вопрос прочитал. Я собирал и референсный и свой
  14. проблема с нерабочей прошивкой была из-за неправильных IOSTANDARD выводов. Заработало, когда сделал так: NET "ddr2_dq[*]" IOSTANDARD = SSTL18_II; NET "ddr2_a[*]" IOSTANDARD = SSTL18_II; NET "ddr2_ba[*]" IOSTANDARD = SSTL18_II; NET "ddr2_ras_n" IOSTANDARD = SSTL18_II; NET "ddr2_cas_n" IOSTANDARD = SSTL18_II; NET "ddr2_we_n" IOSTANDARD = SSTL18_II; NET "ddr2_cs_n[*]" IOSTANDARD = SSTL18_II; NET "ddr2_odt[*]" IOSTANDARD = SSTL18_II; NET "ddr2_cke[*]" IOSTANDARD = SSTL18_II; NET "ddr2_dm[*]" IOSTANDARD = SSTL18_II; NET "ddr2_dqs[*]" IOSTANDARD = DIFF_SSTL18_II; NET "ddr2_dqs_n[*]" IOSTANDARD = DIFF_SSTL18_II; NET "ddr2_ck[*]" IOSTANDARD = DIFF_SSTL18_II; NET "ddr2_ck_n[*]" IOSTANDARD = DIFF_SSTL18_II; Но предупреждения: WARNING PhysDesignRules:1412 - Dangling pins on block:<ddr_ddr_ddr2_ctrl_u_ddr2_top_0_u_mem_if_top_u_phy_top_u_phy_io/gen_dqs_2_u_iob_dqs_u_idelay_dqs>:<IODELAY_IODELAY>. When DELAY_SRC is not DATAIN programming the DATAIN input pin is not used and will be ignored. сохранились В VHDL этот компонент подключается так: u_idelay_dqs : IODELAY generic map ( DELAY_SRC => "I", IDELAY_TYPE => "VARIABLE", HIGH_PERFORMANCE_MODE => HIGH_PERFORMANCE_MODE, IDELAY_VALUE => 0, ODELAY_VALUE => 0 ) port map ( DATAOUT => dqs_idelay, C => clkdiv0, CE => dlyce_dqs, DATAIN => '0', IDATAIN => dqs_ibuf, INC => dlyinc_dqs, ODATAIN => '0', RST => dlyrst_dqs, T => '0' );
×
×
  • Создать...