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

 
 
> Нужна помощь. Обработка группы кнопок с применение процедур
seldim
сообщение Apr 9 2012, 16:15
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 96
Регистрация: 2-04-12
Из: Саратов
Пользователь №: 71 142



Есть задача: 30 кнопок на входе - вектор А, на выходе должна быть информация о нажатии кнопки после фильта (антидребезг) вектор В и информация о залипании кнопок (фильтра на залипание) - вектор С. Как решить задачу в лоб понятно, но вот как ее решить не создавая кучу переменных. Я анализирую каждый бит входного вектора и создаю на каждый из них кучу переменных, счетчиков для фильтров. В результате код громадный и наверняка могут быть ошибки. Нет лист с виду правильный но почемуто есть взаимное влияние входов на реальной железке. Хочется переписать грамотно.
С процедурами и функциями пока не работал. Если кто может подскажите как их правильно применить для данной задачи или какие есть альтернативные методы. Рабосаю с VHDL.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
seldim
сообщение Apr 11 2012, 01:54
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 96
Регистрация: 2-04-12
Из: Саратов
Пользователь №: 71 142



bt1_count и bt1_er_count в списках чувствительности вставлял по просьбе Qvartusa, чтоб варнингов меньше было, а кокда пытался с моделсимом работать так он код VHDL (не гейт левел) вообще както плохо отрабатывал, если в список не включить все , что влияет на сигнал. А сам квартус вроде слышал допускает вообще список чуствительности не указывать, но решил писать все и в дальнейшем при описании кода самому проще будет.

А насчет книжек полное название подскажете?
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Apr 11 2012, 16:07
Сообщение #3


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Цитата(seldim @ Apr 11 2012, 05:54) *
bt1_count и bt1_er_count в списках чувствительности вставлял по просьбе Qvartusa, чтоб варнингов меньше было, а кокда пытался с моделсимом работать так он код VHDL (не гейт левел) вообще както плохо отрабатывал, если в список не включить все , что влияет на сигнал.

???
CODE

library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity bt_cntrl is
port (
bt : in std_logic;
clk_610_Hz : in std_logic;
clk_2_Hz : in std_logic;
en_bt : out std_logic;
err_bt : out std_logic);
end bt_cntrl;

architecture bt_cntrl of bt_cntrl is

signal bt_cnt : integer range 0 to 31 := 0;
signal bt_err_cnt : integer range 0 to 15 := 0;

begin

process (bt, clk_610_Hz)
begin
if bt = '1' then
bt_cnt <= 0;
elsif clk_610_Hz 'event and clk_610_Hz = '1' then
if bt_cnt < 18 then
bt_cnt <= bt_cnt + 1;
end if;
end if;
end process;

process (bt, clk_2_Hz)
begin
if bt = '1' then
bt_err_cnt <= 0;
elsif clk_2_Hz 'event and clk_2_Hz = '1' then
if bt_err_cnt < 13 then
bt_err_cnt <= bt_err_cnt + 1;
end if;
end if;
end process;

en_bt <= '1' when bt_cnt = 18 else '0';
err_bt <= '1' when bt_err_cnt = 13 else '0';

end bt_cntrl;

----------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity keyboard_cntrl is
port (
bt : in std_logic_vector(0 to 29);
clk_610_Hz : in std_logic;
clk_2_Hz : in std_logic;
en_bt : out std_logic_vector(0 to 29);
err_bt : out std_logic_vector(0 to 29));
end keyboard_cntrl;

architecture keyboard_cntrl of keyboard_cntrl is

component bt_cntrl is
port (
bt : in std_logic;
clk_610_Hz : in std_logic;
clk_2_Hz : in std_logic;
en_bt : out std_logic;
err_bt : out std_logic);
end component bt_cntrl;

begin

BUTTONS : for i in 0 to 29 generate
buttom : bt_cntrl
port map(
bt => bt(i),
clk_610_Hz => clk_610_Hz,
clk_2_Hz => clk_2_Hz,
en_bt => en_bt(i),
err_bt => err_bt(i));
end generate BUTTONS;

end keyboard_cntrl;


Прикрепленное изображение



Цитата(seldim @ Apr 11 2012, 05:54) *
А сам квартус вроде слышал допускает вообще список чуствительности не указывать, но решил писать все и в дальнейшем при описании кода самому проще будет.

И да, и нет. sm.gif

Цитата(seldim @ Apr 11 2012, 05:54) *
А насчет книжек полное название подскажете?

Разумеется. sm.gif
Е.А. Суворова, Ю.Е. Шейнин "Проектирование цифровых систем на VHDL".
Вам конкретно нужен раздел "Структурное описание объекта моделирования" (глава 3, стр.110).
Слова "объекта моделирования" пусть Вас не смущают sm.gif.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- seldim   Нужна помощь. Обработка группы кнопок с применение процедур   Apr 9 2012, 16:15
- - vetal   1. Реализуйте нужную задачу для одной кнопки. 2. Р...   Apr 9 2012, 16:25
- - R.A.K.   Сути задачи, честно говоря, не понял, но может Вам...   Apr 9 2012, 16:27
- - seldim   Для одной кнопки все реализовано, но когда начинаю...   Apr 9 2012, 17:03
- - Builder   Цитата(seldim @ Apr 9 2012, 19:15) Есть з...   Apr 9 2012, 18:14
|- - des00   Цитата(Builder @ Apr 9 2012, 13:14) Не пе...   Apr 9 2012, 18:15
|- - Builder   Цитата(des00 @ Apr 9 2012, 21:15) вообще ...   Apr 9 2012, 18:35
- - R.A.K.   Цитата(Builder @ Apr 9 2012, 22:14) Ещё, ...   Apr 9 2012, 18:23
- - seldim   ПРоцессор не подойдет нужно сделать все на внутрен...   Apr 10 2012, 02:08
|- - dm.pogrebnoy   Цитата(seldim @ Apr 10 2012, 06:08) ПРоце...   Apr 10 2012, 03:09
- - XVR   Делаете RAM на 30 ячеек, каждая хранит состояние (...   Apr 10 2012, 10:14
- - Leka   Цитата(seldim @ Apr 9 2012, 20:15) Есть з...   Apr 10 2012, 11:46
- - Leka   Думал, задачка подходящая для отладки синтеза Си -...   Apr 10 2012, 13:29
- - seldim   Си не знаю, но судя по написанному вроде похоже на...   Apr 10 2012, 15:00
|- - R.A.K.   Цитата(seldim @ Apr 10 2012, 19:00) Си не...   Apr 10 2012, 16:32
- - seldim   С последовательным резистором самый правильный вар...   Apr 10 2012, 17:33
|- - R.A.K.   Цитата(seldim @ Apr 10 2012, 21:33) Код с...   Apr 10 2012, 18:04
|- - andrew_b   Цитата(seldim @ Apr 11 2012, 04:54) bt1_c...   Apr 11 2012, 04:22
||- - seldim   Цитата(andrew_b @ Apr 11 2012, 08:22) Не ...   Apr 11 2012, 15:20
- - seldim   Спасибо за пример. Вот это действительно компактны...   Apr 11 2012, 18:30


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

 


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


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