реклама на сайте
подробности

 
 
> ML605 (Virtex-6) + ISE 12.2 + VHDL, Первые шаги в мире ПЛИС
Radio_Head
сообщение Aug 2 2010, 13:26
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 2-10-08
Из: Москва
Пользователь №: 40 657



Здравствуйте товарищи! Помогите решить учебную задачу. Я только начинаю работать с ПЛИС.
Имеем: отладочную плату ML605 (Virtex-6).
Задача: помигать светодиодами.

Беру клок от встроенного генератора (200МГц), и пишу к нему два делителя частоты на 100 и 1’000’000 (думаю не принципиально, сколько и как делить). Подключаем последовательно, и на выходе получаем клок в 2Гц. Этим клоком тактируем сдвиговый регистр (в котором изначально записано “00001”). Изначально клок от генератора идёт по дифференциальной паре, поэтому ещё один компонент обязан это исправить (IBUFDS).

Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity BPI_MultiBoot_Module_A is
Port (
   sys_clk_in_pn    : in std_logic_vector(1 downto 0); --- Differential 200 Mhz clock input
   LED_REVXX     : out std_logic_vector(4 downto 0)--- LED
   );
end BPI_MultiBoot_Module_A;

architecture Behavioral of BPI_MultiBoot_Module_A is

---
--- объявление компонентов удалено
---

begin
----- Instantiation of all modules  -------

--Differential Clock input 200Mhz --
    Inst_CLOCK_DIFF_IN: CLOCK_DIFF_IN PORT MAP(
        diff_clock_in => sys_clk_in_pn,
        Master_clock => CLK_Single_Out
    );
    
--- Clock divide by ------
    Inst_Clock_200mhz_div_10: Clock_200mhz_div_10 PORT MAP(
        clock_200mhz_in => CLK_Single_Out,
        clock_2mhz_out => CLK_IN
    );

--- Clock divide by for LED display------
    Inst_clk_div_10k: clk_div_10k PORT MAP(
        clk_in_4_div => CLK_IN,
        div_10k_out => CLK_MST_OUT
    );

-- LED Status --
    Inst_LED_Disp_assign: LED_Disp_assign PORT MAP(
        led_out => LED_REVXX,
        clk => CLK_MST_OUT
    );
-- LED Status --

        
end Behavioral;



Код
architecture Behavioral of LED_Disp_assign is

signal      led_pattern : std_logic_vector(4 downto 0):= "00001";

begin            
    led_display: process(clk)
        begin
             if clk'event and clk='1' then
                led_pattern <= led_pattern(3 downto 0) & led_pattern(4);
             end if;
                led_out <= led_pattern;
     end process led_display;
end Behavioral;



Код синтезируется (хотя есть варнинг по поводу того, что led_pattern не включён в список чувствительности led_display: process(clk)).

При implementation проекта вываливается ещё варнинга, что неплохо бы было использовать вход CE.

После после создания прошивки пытаюсь залить через iMPACT идёт долгий процесс записи (минут 25) памяти конфигуратора (*.mcs), а на 70% процесс обрывается ошибкой. При попытке конфигурирования кристалла (*.bin) через JTAG ChipScope тут же выдаёт что
ERROR: Wrong configuration stream for device
ERROR: Configuration failed.

Сдаётся мне, что при создании проекта я задаю неверные установки, но перелистав их несколько раз, не могу найти ошибку… Подскажите, на какие грабли я наступаю, где искать спасения? Ну и советы какие-нибудь, тоже рад был бы услышать.

P/S/ IO настроил следующим через *.ucf
Код
# differential clock input 200Mhz
NET "sys_clk_in_pn<0>" LOC = "J9";
NET "sys_clk_in_pn<1>" LOC = "H9";

NET "LED_REVXX<0>"  LOC = "AD21";
NET "LED_REVXX<1>"  LOC = "AH28";
NET "LED_REVXX<2>"  LOC = "AH27";
NET "LED_REVXX<3>"  LOC = "AE21";
NET "LED_REVXX<4>"  LOC = "AP24";

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016