2013-12-02 2 views
0

У меня проблема с этим фрагментом кода, «s» не отображается в «выводах ввода/вывода планшета», потому что он никогда не используется почему? Как я могу решить эту проблему?VHDL - вход не используется

entity tempModule is 
    port (s : in std_logic; 
     ss : out std_logic); 
end tempModule; 

architecture tempModule_Behavioral of tempModule is 
begin 
    process(s) 
    begin 
    if (s = '1') then 
     ss <= '1'; 
    end if; 
    end process; 
end tempModule_Behavioral; 

ответ

2

Вы уверены, что pin s и ss находятся в вашем UCF?

Одна вещь, которую вы могли бы попробовать было бы просто сделать:

ss <= s; 

Это будет гарантировать, что он не будет оптимизирован прочь.

2

Конструкция VHDL описывает модуль, который управляет 'U' (Неинициализированным) на выходе ss от включения питания и до ввода s является '1', а затем выход ss является '1' с тех пор.

Поскольку выход 'U' значения (Неинициализированного) в начале на ss может быть реализован в виде любого значения с помощью инструмента моделирования, он может быть реализован как '1', в результате чего выходной сигнал ss является только тривиальным '1', и вход s есть тем не менее не использовался.

Это похоже на то, что поведение инструмента синтеза, как и следовало ожидать, возможно, но, возможно, поведение модуля должно быть изменено, поскольку модули, похоже, не делают ничего .

2

Вы реализуете схему COMBINATIONAL, поэтому должна быть описана таблица истинности COMPLETE.

Тем не менее, вы указали только ss для s = '1', поэтому компилятор понимает, что все в порядке, чтобы просто поддерживать высокий выход все время, и в этом случае s на самом деле не требуется.

Чтобы указать сс для всех возможных значений х, постарайтесь закончить, если заявление с «другой», как это:

if ...; 
elsif ...; 
else ...; 
Смежные вопросы