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

Виртекс4->DCM-> ISE7.1SP3 проблемы(+)

есть просто проект, делитель частоты на 4, сделанный в коре генераторе

library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
-- synopsys translate_off
library UNISIM;
use UNISIM.Vcomponents.ALL;
-- synopsys translate_on

entity div4 is
  port ( CLKIN_IN        : in    std_logic; 
         RST_IN          : in    std_logic; 
         CLKDV_OUT       : out   std_logic; 
         CLKIN_IBUFG_OUT : out   std_logic; 
         CLK0_OUT        : out   std_logic; 
         LOCKED_OUT      : out   std_logic);
end div4;

architecture BEHAVIORAL of div4 is
  signal CLKDV_BUF       : std_logic;
  signal CLKFB_IN        : std_logic;
  signal CLKIN_IBUFG     : std_logic;
  signal CLK0_BUF        : std_logic;
  signal GND             : std_logic_vector (6 downto 0);
  signal GND1            : std_logic_vector (15 downto 0);
  signal GND2            : std_logic;
  component BUFG
     port ( I : in    std_logic; 
            O : out   std_logic);
  end component;
  
  component IBUFG
     port ( I : in    std_logic; 
            O : out   std_logic);
  end component;
  
  component DCM_ADV
     generic( CLK_FEEDBACK : string :=  "1X";
              CLKDV_DIVIDE : real :=  2.000000;
              CLKFX_DIVIDE : integer :=  1;
              CLKFX_MULTIPLY : integer :=  4;
              CLKIN_DIVIDE_BY_2 : boolean :=  FALSE;
              CLKIN_PERIOD : real :=  0.000000;
              CLKOUT_PHASE_SHIFT : string :=  "NONE";
              DCM_AUTOCALIBRATION : boolean :=  TRUE;
              DCM_PERFORMANCE_MODE : string :=  "MAX_SPEED";
              DESKEW_ADJUST : string :=  "SYSTEM_SYNCHRONOUS";
              DFS_FREQUENCY_MODE : string :=  "LOW";
              DLL_FREQUENCY_MODE : string :=  "LOW";
              DUTY_CYCLE_CORRECTION : boolean :=  TRUE;
              PHASE_SHIFT : integer :=  0;
              STARTUP_WAIT : boolean :=  FALSE;
              FACTORY_JF : bit_vector :=  x"F0F0");
     port ( CLKIN    : in    std_logic; 
            CLKFB    : in    std_logic; 
            DADDR    : in    std_logic_vector (6 downto 0); 
            DI       : in    std_logic_vector (15 downto 0); 
            DWE      : in    std_logic; 
            DEN      : in    std_logic; 
            DCLK     : in    std_logic; 
            RST      : in    std_logic; 
            PSEN     : in    std_logic; 
            PSINCDEC : in    std_logic; 
            PSCLK    : in    std_logic; 
            CLK0     : out   std_logic; 
            CLK90    : out   std_logic; 
            CLK180   : out   std_logic; 
            CLK270   : out   std_logic; 
            CLKDV    : out   std_logic; 
            CLK2X    : out   std_logic; 
            CLK2X180 : out   std_logic; 
            CLKFX    : out   std_logic; 
            CLKFX180 : out   std_logic; 
            DRDY     : out   std_logic; 
            DO       : out   std_logic_vector (15 downto 0); 
            LOCKED   : out   std_logic; 
            PSDONE   : out   std_logic);
  end component;
  
begin
  GND(6 downto 0) <= "0000000";
  GND1(15 downto 0) <= "0000000000000000";
  GND2 <= '0';
  CLKIN_IBUFG_OUT <= CLKIN_IBUFG;
  CLK0_OUT <= CLKFB_IN;
  CLKDV_BUFG_INST : BUFG
     port map (I=>CLKDV_BUF,
               O=>CLKDV_OUT);
  
  CLKIN_IBUFG_INST : IBUFG
     port map (I=>CLKIN_IN,
               O=>CLKIN_IBUFG);
  
  CLK0_BUFG_INST : BUFG
     port map (I=>CLK0_BUF,
               O=>CLKFB_IN);
  
  DCM_ADV_INST : DCM_ADV
  generic map( CLK_FEEDBACK => "1X",
           CLKDV_DIVIDE => 4.000000,
           CLKFX_DIVIDE => 1,
           CLKFX_MULTIPLY => 4,
           CLKIN_DIVIDE_BY_2 => FALSE,
           CLKIN_PERIOD => 20.000000,
           CLKOUT_PHASE_SHIFT => "NONE",
           DCM_AUTOCALIBRATION => TRUE,
           DCM_PERFORMANCE_MODE => "MAX_SPEED",
           DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS",
           DFS_FREQUENCY_MODE => "LOW",
           DLL_FREQUENCY_MODE => "LOW",
           DUTY_CYCLE_CORRECTION => TRUE,
           PHASE_SHIFT => 0,
           STARTUP_WAIT => FALSE,
           FACTORY_JF => x"F0F0")
     port map (CLKFB=>CLKFB_IN,
               CLKIN=>CLKIN_IBUFG,
               DADDR(6 downto 0)=>GND(6 downto 0),
               DCLK=>GND2,
               DEN=>GND2,
               DI(15 downto 0)=>GND1(15 downto 0),
               DWE=>GND2,
               PSCLK=>GND2,
               PSEN=>GND2,
               PSINCDEC=>GND2,
               RST=>RST_IN,
               CLKDV=>CLKDV_BUF,
               CLKFX=>open,
               CLKFX180=>open,
               CLK0=>CLK0_BUF,
               CLK2X=>open,
               CLK2X180=>open,
               CLK90=>open,
               CLK180=>open,
               CLK270=>open,
               DO=>open,
               DRDY=>open,
               LOCKED=>LOCKED_OUT,
               PSDONE=>open);
  
end BEHAVIORAL;

 

В файле ничего не менялось, сответствующий файл констрейнов "пристегнул", синтез в исе проходит на ура, но мапер вылетает с сообщением :

 

FATAL_ERROR:Portability:PortDynamicLib.c:278:1.20 - dll open of library

<C:/Xilinx/cr186785/bin/nt/libNlw_UniEdif.dll> failed due to an unknown

reason. Process will terminate. To resolve this error, please consult the

Answers Database and other online resources at http://support.xilinx.com. If

you need further assistance, please open a Webcase by clicking on the

"WebCase" link at http://support.xilinx.com

 

Сталкивались ли вы с подобным ? если да, то как боролись ?

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


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

Подобным образом вылетал ПАР неправильно был подключен в УЦФ файле пин... еще посмотри ограничения на подключения выходных сигналов к ДЦМ.... по моему с IBUfG на OBUF пускать нельзя

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


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

Подобным образом вылетал ПАР неправильно был подключен в УЦФ файле пин... еще посмотри ограничения на подключения выходных сигналов к ДЦМ.... по моему с IBUfG на OBUF пускать нельзя

спасибо, посмотрел, действительно IBUFG на OBUF шел, но переделал по тупому, та же песня :( код

 

dcm_adv0 : dcm_adv
    generic map(
 TimingChecksOn  => true,
 CLKDV_DIVIDE  => 4.0,        
 CLKFX_DIVIDE  => 1,
 CLKFX_MULTIPLY  => 4,
 CLKIN_DIVIDE_BY_2  => false,    
 CLKIN_PERIOD      => 20.0,  
 CLKOUT_PHASE_SHIFT  => "NONE",    
 CLK_FEEDBACK      => "1X",      
 DCM_PERFORMANCE_MODE => "MAX_SPEED",      
 DESKEW_ADJUST      => "SYSTEM_SYNCHRONOUS",    
 DFS_FREQUENCY_MODE  => "LOW",
 DLL_FREQUENCY_MODE  => "LOW",
 DUTY_CYCLE_CORRECTION => true, 
 FACTORY_JF  => X"C080",    
 PHASE_SHIFT => 0,
 STARTUP_WAIT => false
 )
    port map(
 CLK0  => clk0,
 CLK180      => open,
 CLK270      => open,
 CLK2X      => open,
 CLK2X180  => open,
 CLK90      => open,
 CLKDV  => open, 
 CLKFX      => open,
 CLKFX180  => open,
 DO    => open,
 DRDY      => open,
 LOCKED  => locked,
 PSDONE  => open,
 CLKFB  => clk0_buff,
 CLKIN  => clk_in,
 DADDR  => (others => '0'),
 DCLK  => '0',
 DEN  => '0',
 DI      => (others => '0'),
 DWE  => '0',
 PSCLK  => '0',
 PSEN  => '0',
 PSINCDEC => '0',
 RST => reset
    );
    
    bufg0 : BUFG
   port map( I => clk0, O => clk0_buff);
       
   ibufg0 : IBUFG
   port map ( I => in_clock, O => clk_in);
   ibuf0 : IBUF
   port map ( I => in_reset, O => reset);

    obuf0 : obuf
    port map ( I => reg, O => out_clk_dv);
    obuf1 : obuf
    port map ( I => locked, O => out_locked);
    
    process (clk0_buff, reset) is 
    begin 
 if (reset = '1') then
     reg <= '0';
 elsif (rising_edge(clk0_buff)) then
     reg <= not reg;
 end if;
    end process;

 

я просто пропускаю частоту "транзитом" через ДЦМ, пример взял из "Virtex-4 User Guide".

 

блин не могу понять что не так :wub:

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


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

кто то совсем недавно пел (или тут или в телесистемах) что есть какой-то не то атрибут не то генерик без которого на спартане 3 не заводиться ДЦМ, и атрибут в доках не написан

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


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

кто то совсем недавно пел (или тут или в телесистемах) что есть какой-то не то атрибут не то генерик без которого на спартане 3 не заводиться ДЦМ, и атрибут в доках не написан

 

http://forum.electronix.ru/index.php?showtopic=6808

но там не работал, но собирался в железо,

а у меня да же не собираеться :( и атрибуты прописанны все.

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


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

Взял вашу первую схему.

Посмотрел после синтеза RTL schematic, все нормально. Ну кроме того что CLKIN_IBUFG_OUT идет на выход.

Сделал Implementation все ок.

Дела все под альдеком, но синтезил и разводил с помощью ISE 7.1

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


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

Взял вашу первую схему.

Посмотрел после синтеза RTL schematic,  все нормально. Ну кроме того что CLKIN_IBUFG_OUT идет на выход.

Сделал Implementation все ок.

Дела все под альдеком, но синтезил и разводил с помощью ISE 7.1

 

Спасибо, насчет буфера так и было задумано (мне внешку тактировать).

 

Проблема разрешилась, дело было вообще не в той области :)

Я поставил антивирь McAfee, по совету колег (тут нападение вирусов на контору),

и этот тестовый проектик был первым после того как его поставил.

Ну и похоже что он эту длл "задолбил" и даже обычный тригер не разводился :(. Все решилось перестановкой софта + потеряннм рабочим днем :(.

Зато теперь я знаю про настройку и DCM ов + их констрейны в виртексе 4 все, ну или почти все :)

 

Всем спасибо за помошь.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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