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

 
 
> Вопрос новичка по Xilinx/VHDL, проблемы
Gas Wilson
сообщение May 26 2008, 12:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 11-10-07
Пользователь №: 31 261



Добрый день! Начинаю осваивать vhdl... Создал простой проект в ISE 9.2 но после генерации файла и прошивки его в Spartan 3E sample pack board ничего не работает.. какой то сигнал на выходе есть, но это явно не то что нужно... При этом синтез схемы показывает правельные результаты... Сам не могу разобраться в чём проблема... 05.gif

Код
entity main is
    Port ( clk : in  STD_LOGIC;
           cl1 : out  STD_LOGIC;
           cl2 : out  STD_LOGIC;
           flm : out  STD_LOGIC;
           d0 : out  STD_LOGIC;
           d1 : out  STD_LOGIC;
           d2 : out  STD_LOGIC;
           d3 : out  STD_LOGIC);
end main;

architecture Behavioral of main is

begin

main : process(clk)

variable x_counter : integer :=0;
variable flm_counter : integer :=0;
variable cl2_counter : integer :=0;
variable cl1_counter : integer :=0;
variable clk_counter : integer :=0;
variable cl2_val : std_logic :='0';
variable cl1_val : std_logic :='0';

begin
        if (clk='1') then
        
            clk_counter := clk_counter + 1;
        
            if (clk_counter = 1) then                                        --cl2 rise
            
                cl2_val := not cl2_val;
                cl2 <= cl2_val;
                
                if (cl2_val='1') then                                        --data
            
                    d0 <= '0';
                    d1 <= '0';
                    d2 <= '1';
                    d3 <= '0';
                    
                    cl2_counter := cl2_counter + 1;
                    
                end if;
            
            elsif ((clk_counter = 2) AND (cl2_val  = '1')) then     --cl1
                    
                    cl1_val := not cl1_val;
                    cl1 <= cl1_val;
                    
            elsif (clk_counter = 5) then                                        --cl2 fall
                
                    --cl2_val := '0';
                    --cl2 <= cl2_val;
                    
                    clk_counter := 0;
                    
            end if;
                
            
                                
        end if;
        
                        
end process main;


end Behavioral;


Буду благодарен за любые подсказки! smile.gif При этом схема собранная на Schematic'е прекрасно работает...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Boris_TS
сообщение May 26 2008, 14:01
Сообщение #2


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



А Вы напишите, что хотели сделать... ну или тот самый схематик приложите, что ли... А то непонятно, что же Вы хотели сделать этим кодом.

Вот, например, это место очень подозрительно выглядит:
Код
            clk_counter := clk_counter + 1;
        
            if (clk_counter = 1) then                                        --cl2 rise
            
                cl2_val := not cl2_val;
                cl2 <= cl2_val;
                
                if (cl2_val='1') then
            
                    d0 <= '0';
                    d1 <= '0';
                    d2 <= '1';
                    d3 <= '0';
                    
                    cl2_counter := cl2_counter + 1;
                    
                end if;
Переменная clk_counter "мгновенно" перейдет в состояние '+1' (= 1), и if обязательно сработает... Затем cl2_val "мгновенно" поменяет свое состояние с '0' на '1' и следующий if сработает.... А т.к. сигналам D(3:0) больше нигде не присваиваются значения, то они ВСЕГДА равны D(3:0) = 0100. А зачем тогда весь этот огород городить ??? Даже XST ругается на это:
INFO:Xst:2679 - Register <d0> in unit <main> has a constant value of 0 during circuit operation. The register is replaced by logic.

Прочитайте внимательно про разницу между присвоением переменных и сигналов.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 05:32
Рейтинг@Mail.ru


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