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

 
 
> Вопрос по SignalTape
Fynjisx
сообщение Dec 1 2010, 06:30
Сообщение #1


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Привет... Создал RS-latch, используя MegaWizard, далее подключил в свой проекты. На выходные ножки ПЛИС вывел сигналы s (set), r(reset), q(quit).

CODE
l: lp
port map
(
aclr => not r,
aset => not s,
data => '0',
gate => '0',
q => q
);


Далее подключил SignalTape и добавил туда ранее описанный сигналы. Вопрос такой: почему в SignalTape рисуется спад q раньше спада r?
Прикрепленные файлы
Прикрепленный файл  s.bmp ( 835.67 килобайт ) Кол-во скачиваний: 40
 


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yura-w
сообщение Dec 1 2010, 11:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(Fynjisx @ Dec 1 2010, 09:30) *
CODE
l: lp
port map
(
aclr => not r,
aset => not s,
data => '0',
gate => '0',
q => q
);

имхо: не понятно ни чего
( "aclr" больше или равен "not r" ? кто такой "port" и "map"? и что за язык?
подозреваю, что SignalTape это SignalTap и остальные ошибки надо искать в синтаксисе)
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Dec 1 2010, 11:52
Сообщение #3


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(yura-w @ Dec 1 2010, 15:03) *
имхо: не понятно ни чего
( "aclr" больше или равен "not r" ? кто такой "port" и "map"? и что за язык?
подозреваю, что SignalTape это SignalTap и остальные ошибки надо искать в синтаксисе)

это я привел кусок кода на VHDL, как я подключил модуль RS-защелку в проекте. aclr не больше или равен, а соединен напрямую с инвертированным r(reset).


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
yura-w
сообщение Dec 1 2010, 12:28
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(Fynjisx @ Dec 1 2010, 14:52) *
это я привел кусок кода на VHDL, как я подключил модуль RS-защелку в проекте. aclr не больше или равен, а соединен напрямую с инвертированным r(reset).

sad.gif Извиняюсь, был не внимателен.
думаю поможет следующее:
data => '1'
gate => '1'
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Dec 1 2010, 16:07
Сообщение #5


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(yura-w @ Dec 1 2010, 16:28) *
sad.gif Извиняюсь, был не внимателен.
думаю поможет следующее:
data => '1'
gate => '1'

Щас обьясню что я делаю. У меня есть автомат на 3 состояния: st0, st1, st2. При подаче rst(сброс), автомат переходит в состояние st0. Вот его код:
CODE

entity tops is

Port ( clk : in std_logic;
in1 : in std_logic;
rst : in std_logic;
out1 : out std_logic
);
end tops;



architecture Behavioral of tops is


type fsm is (st0, st1, st2);

signal st, nst: fsm:= st0;

begin

process(clk)
begin
if rst = '0' then
st <= st0;
elsif rising_edge(clk) then
st <= nst;
end if;
end process;



process(all)
begin
case st is
when st0=>
nst <= st1;
out1 <= '1';

when st1=>
if in1 = '1' then
nst <= st2;
else
nst <= st1;
end if;
out1 <= '0';

when st2=>
nst <= st2;
out1 <= '0';
end case;

end process;


Мне нужно подать внешний сброс (rst) на этот автомат. У меня есть плата с помощью которой я это намеревался сделать. Единственный вопрос возник как избавиться от дребезга контактов. ДЛя это я придумал не хитрую RS-защелку. Причем на плате разведено так, что по умолчанию на ножки плис, которые я использую в качестве контактов кнопки, подходят подтянутые высокие уровни. Т.е для перключения мне нужны активные низкие уровни. Отсюда и RS-защелка с инвертированными входами R и S.
Далее я хотел вывести все сигналы через SignalTap, затем нажать на мою кнопку и увидеть как меняются состояния и выходные сигналы автомата. ВСя запарка произошла из-за того, чтопри подаче активного низкого уровня на r или s защелки, в SignalTap я увидел что раньше меняется её выход(который у меня обозначе как q). Векторная диаграмма приложена в первом сообщении моего топика...


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
yura-w
сообщение Dec 1 2010, 21:05
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 305
Регистрация: 22-06-07
Из: Санкт-Петербург
Пользователь №: 28 617



Цитата(Fynjisx @ Dec 1 2010, 19:07) *
... Единственный вопрос возник как избавиться от дребезга контактов. ДЛя это я придумал не хитрую RS-защелку.

для избавления от дребезга обычно используют счетчик, считающий например до 10ms, в зависимости от кнопки (в вашем случае низкий - разрешение счета, высокий - сброс счетчика в ноль, если счетчик досчитал до конца - это и есть сигнал чистый от дребезга)

Цитата(Fynjisx @ Dec 1 2010, 19:07) *
....ВСя запарка произошла из-за того, чтопри подаче активного низкого уровня на r или s защелки, в SignalTap я увидел что раньше меняется её выход(который у меня обозначе как q). Векторная диаграмма приложена в первом сообщении моего топика...

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

если длительность входных сигналов меньше (в вашем случае это практически гарантированно) тактовой частоты используемой в signaltap, то на временной диаграмме вы и не увидите их изменение, что и видно на вашей картинке
Go to the top of the page
 
+Quote Post



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

 


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


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