новий цикл перетворення.
програмний тестування мікропроцесорний схема
Рисунок 8 - Граф-схема переходів автомата управління Avt_ADC
Для автомата за допомогою програми пакету HDL Designer Series фірми Mentor Graphics була виконана трансляція діаграми.
hds header_start
hds header_end LIBRARY ieee;
USE ieee.std_logic_l164.all; USE ieee.std_logic_ariht.all;
ENTITY Avt_ADC IS
PORT (Clk, Start, Rst, nEOC, Ack_DMA, End_Count: in std_logic; nConvSt, Busy, Load, Req_DMA, OE, nRD, Res_Count: out std_logic); END Avt ADC;
hds interface_end LIBRARY ieee;
USE ieee.std_logic_1164.all; USE ieee.std_logic_ariht. all;
ARCHITECTURE fsm of Avt_ADC IS
- Architecture Declarations
TYPE state_values ??IS (IDLE_ST, START_ST, WAIT1_ST, LOAD_ST, WAIT2_ST, DMA_ST, WAIT3_ST, ENDTR_ST,);
SIGNAL current_state, next_state: state_values; BEGIN
cloced: process (Clk, Rst) BEGIN
IF Rst= 1 THEN
current_state lt;=IDLE_ST;- Reset Values ??ELSIF rising_edge (Clk) then
current_state lt;=next_state;- Default Assignment To Internals END IF; END PROCESS cloced;
NEXTSTATE: PROCESS (current_state, Start, nEOC, Ack_DMA, End_Count) BEGIN
- Defaults Assignment
nConvSt lt;= 1 raquo ;;
Busy lt;= 1 raquo ;; Load lt;= 0 raquo ;; ReqDMA lt;= 0 raquo ;; OE lt;= 0 raquo ;; nRD lt;= 0 raquo ;; Res_Count lt;= 0 raquo ;;
- Combined Actions
CASE current_state IS
WHEN IDLE_ST= gt;
Busy lt;= 0 raquo ;;
Res_count lt;= 1 raquo ;;
IF Start= 1 THEN
next_state lt;=START_ST;
END IF; WHEN START_ST= gt;
nConvSt lt;= 0 raquo ;;
next_state lt;=WAIT1_ST; WHEN WAIT1 ST= gt;
IF nEOC= Про THEN
next_state lt;=LOAD_ST; END IF; WHEN LOAD_ST= gt; Load lt;= 1 raquo ;; nRD lt;= 0 raquo ;; Req_DMA lt;= 1 raquo ;; OE lt;= 1 raquo ;;
next_state lt;=WAIT2_ST; WHEN WAIT2_ST= gt; OE lt;= 1 raquo ;; IF Ack_DMA= 1 THEN
next_state lt;=DMA_ST; END IF; WHEN DMA_ST= gt;
Req_DMA lt;= 1 raquo ;; next_state lt;=WAIT3_ST; WHEN WAIT3_ST= gt;
IF Ack_DMA= 1 THEN
next_state lt;=ENDTR_ST; END IF; WHEN ENDTR_ST= gt;
IF End_Count= 1 THEN
next_state lt;=IDLE_ST; ELSE
next_state lt;=START_ST; END IF; WHEN OTHERS= gt;
next_state lt;=IDLE_ST; END CASE; END PROCESS nextstate;- Concurrent Statements END fsm;
3.3 Тестування програмного опису автомата
Для перевірки правильності складання і працездатності автоматів необхідно проведення тестових випробувань. Можливі різні підходи до організації тестування. Найбільшого поширення набули наступні варіанти:
1) програма САПР, що створює текстовий опис автомата (така як, наприклад, програма StateCAD), перевіряє наявність комбінацій вхідних сигналів, що відповідають невизначеному напрямку переходу автомата, і тому вимагає формування повного переліку вхідних сигналів, однозначно визначають напрямки переходів.
2) САПР може забезпечувати так званий режим анімації. У цьому режимі САПР послідовно проходить по всіх станах автомата. Перехід в чергове активний стан здійснюється шляхом встановлення бажаних значень вхідних сигналів. Таким чином, в інтерактивному режимі розробник може перевірити всі потрібні стани, переходи і значення вихідних змінних, змінюючи на кожному кроці значення вхідних змінних.
У загальному випадку перевірка працездатності автомата (створеного будь-яким способом) може здійснюватися на підставі традиційних методів створення тестуючих програм (Test -Bench). Сучасні САПР спрощують цей підхід, пропонуючи автоматичне створення тестового блоку Test -Bench. Можливості автоматизації змінюються в досить широких межах: від автоматичного формування тільки інтерфейсу блоку Test -Bench до автоматичного формування послідовності вхідних сигналів, що забезпечує перебір всіх можливих станів автомата. Для розглянутого прикладу проектування було доцільно орієнтуватися на можливості пакету HDL Designer в частині формування тестуючих програм Test -Bench. Тому пакет був запущений на створення Test-Bench і автоматично сформував ENTITY для тестуючої програми. Для заповнення архітектурного тіла можна використовувати будь редактори, що входять до складу HDL Designer, наприклад графічний редактор опису потоків Flow Chart або редактор таблиць істинності Truth Table.
3.4 Розробка загальної структури блоку Cnt_ADC
Опис блоку Cnt_ADC може, орієнтуватися на різні можливості і засоби опису, що надаються САПР HDL Designer. Найбіл...