Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программируемая логика: ПЛИС, ПАИС
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
comppass
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 14
#1

Двоично-десятичный таймер минут. AHDL - Программируемая логика

05.06.2012, 16:07. Просмотров 1657. Ответов 6
Метки нет (Все метки)

если кто-то вдруг знает,понимает, то надо разработать на AHDL схему двоично-десятичного таймера минут с функциями "установка десятков минут", "установка единиц минут", "старт"

Входы:
CLC - тактовая частота с периодом 1мин.
R- сброс
V выбор режима (ввод минут, ввод десятков минут, ожидание)
VP - увеличение
VM - уменьшение
START - начало счета

Выходы:
DEC[3..0] -десятки минут, MIN[2..0]-минуты.

есть пример,как его делать. но я просто не понимаю как он работает - и было б круто,если б объяснили и посмотрели,правильно ли вообще он работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2012, 16:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Двоично-десятичный таймер минут. AHDL (Программируемая логика):

AHDL. Двоично-десятичный секундомер
Здравствуйте! Помогите пожалуйста разработать схему в AHDL двоично-десятичного...

Двоично-десятичный вычитатель 8-ми разрядных чисел на AHDL
В общем нужно: Разработать в AHDL схему двоично-десятичного вычитателя...

Двоично-десятичный счетчик VHDL Xilinx
Всем привет. Я новичок,и только занимаюсь изучением. Дали задание сделать...

VHDL. Вычитающий двоично-десятичный счетчик
Построить устройство, представляющее собой два вычитающих двоично-десятичных...

Алгоритм преобразования двоичного в двоично-десятичный код
Добрый день! Передо мной стоит задача реализовать на VHDL это устройство. Я...

AHDL. Комментарии по коду
Помогите ,пожалуйста,разобраться в программе. Поясните,что значит ,каждая из...

6
raxp
10180 / 6563 / 491
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
05.06.2012, 16:09 #2
...очень рады, что есть пример. У нас его нет, выкладывайте.
0
comppass
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 14
05.06.2012, 16:18  [ТС] #3
сорри,

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
SUBDESIGN TIMERY
(   CLK,START,VP,V,VM:INPUT;
    R:INPUT=GND;
    MIN[3..0]:OUTPUT;
    DEC[2..0]:OUTPUT;)
Variable
    RG1[3..0]: DFF;
    RG2[2..0]: DFF;
    WT: DFF;
    SQ,CLC: WIRE;
BEGIN
    WT.CLK=START;
    CLC = VP # VM;
    WT.D=VCC;
    SQ=WT.Q;    
    RG1[].CLRN=!R;
    RG1[].CLK=(SQ&CLK)#(!SQ&CLC&!V);    
    RG2[].CLRN=!R;
    RG2[].CLK=(SQ&MIN[3])#(!SQ&CLC&V);
    
    IF SQ==0 THEN
        IF V ==0 THEN
            IF VP==1&VM==0 THEN
                CASE RG1[] IS
                    WHEN B"1001"=>  RG1[].D=B"0000";
                    WHEN OTHERS  =>  RG1[].D=RG1[].Q+1;     
                END CASE;
            ELSE IF VP==0&VM==1 THEN
                CASE RG1[] IS
                    WHEN B"0000"=>  RG1[].D=B"1001";   
                    WHEN OTHERS  =>  RG1[].D=RG1[].Q-1;
                END CASE;
            END IF;
            END IF;
        ELSE
            IF VP==1&VM==0 THEN
                CASE RG2[] IS
                    WHEN B"101"=>  RG2[].D=B"000";
                    WHEN OTHERS  =>  RG2[].D=RG2[].Q+1;     
                END CASE;
            ELSE IF VP==0&VM==1 THEN
                CASE RG2[] IS
                    WHEN B"000"=>  RG2[].D=B"101";   
                    WHEN OTHERS  =>  RG2[].D=RG2[].Q-1;
                END CASE;
            END IF;
            END IF;
        END IF;
    END IF;
    IF SQ==1 THEN
        CASE RG1[].Q IS
            WHEN B"0000" =>  RG1[].D=B"1001";
            WHEN OTHERS  =>  RG1[].D=RG1[].Q-1;
        END CASE;
        CASE RG2[].Q IS
            WHEN B"000" =>  RG2[].D=B"101";
            WHEN OTHERS =>  RG2[].D=RG2[].Q-1;
        END CASE;
    END IF;
    IF MIN[]==0 & DEC[]==0 & WT.Q==1 THEN
        WT.CLRN=B"0";
    ELSE
        WT.CLRN=!R;
    END IF;
    MIN[] = RG1[].Q;
    DEC[] = RG2[].Q;
END;
Добавлено через 1 минуту
но вот какой график, и вообще суть работы я слабо представляю.
0
raxp
10180 / 6563 / 491
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
05.06.2012, 16:31 #4
...запустите симулятор в ISE (или в квартусе или в другом любимом HDL-редакторе), создайте макроэлемент HDL, вставьте код, скомпилируйте, подайте такты, данные и импульс старта и увидите на графиках режим его работы.
0
comppass
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 14
05.06.2012, 20:42  [ТС] #5
то есть код для данного задания правильный?
0
raxp
10180 / 6563 / 491
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
05.06.2012, 20:44 #6
...вот и проверите в симуляторе правильность.
0
comppass
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 14
05.06.2012, 20:51  [ТС] #7
спасибо
0
05.06.2012, 20:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2012, 20:51
Привет! Вот еще темы с решениями:

32-х разрядный умножитель на AHDL
Помогите сделать 32-х разрядный умножитель на AHDL , или хотябы алгорит ,...

AHDL. Накапливающий сумматор
Здравствуйте,помогите,пожалуйста нарисовать функциональную схему ...

AHDL. Управление регистрами
(AHDL) Имея 2 регистра (>>1 бита), задать соединения входов и выходов одного в...

Описание блоков на AHDL
Многоуважаемые форумчане, помогите описать два блока схемы на языке AHDL. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru