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

 
 
> Проблема с симулятором в Active-HDL 6.2
AVR
сообщение Aug 21 2006, 00:18
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Причем самое странное, что в квартусе 4.3 это работает на симуляторе, а в Active-HDL 6.2 нет.
Если же заменить строчку i <= i + 1; на i <= X"5";, то на выходе при симуляции в Active-HDL всё правильно: на выходе 5, но почему-то оператор + не работает - на выходе значение X по всем выводам, хотя при компиляции не выдается ошибок или warning'ов... help.gif
Код
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.std_logic_unsigned.all;

entity gt is
    port(
        clk : in STD_LOGIC;
        q : out STD_LOGIC_VECTOR(3 downto 0)
        );
end gt;

architecture gt of gt is
    signal i: STD_LOGIC_VECTOR(3 downto 0);
begin
    
    process(clk)
    begin
        if CLK='1' and CLK'event then
            i <= i + 1;
        end if;
    end process;
    q <= i;
    
end gt;


Сообщение отредактировал AVR - Aug 21 2006, 00:19


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
andrew_b
сообщение Aug 21 2006, 04:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(AVR @ Aug 21 2006, 04:18) *
Причем самоестранное, что в квартусе 4.3 это работает на симуляторе, а в Active-HDL6.2 нет.

Тут каждый из симуляторов прав по-своему, поскольку исходят они из разных начальных условий. Вы пытаетесь инкрементировать неинициализированный сигнал. В Активе в начале у вас i установлен в значение (others => 'U'). Как вы думаете, чему равно 'U' + 1 ? ВКвартусе, с его привязкой к железу, вероятно, в начале i = (others=> '0'), поэтому все работает.
Цитата
Если же заменить строчку i <= i + 1; на i <= X"5";,то на выходе при симуляции в Active-HDL всё правильно: на выходе 5, нопочему-то оператор + не работает - на выходе значение X по всемвыводам, хотя при компиляции не выдается ошибок или warning'ов... help.gif

Видимо (лень лезть в сорцы библиотеки), дело в реализации функций "+" для разных типов входных данных.

Сообщение отредактировал andrew_b - Aug 21 2006, 04:54
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 21 2006, 09:04
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



andrew_b, большое спасибо, действительно, если я вно указать исходное значение то всё работает.


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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