220 likes | 406 Views
Верификация проектов сложных цифровых систем, специфицированных Алгоритмическими Машинами Состояний ( Algorithmic State Machines , ASM ). С.Л. Френкель Институт Проблем Информатики РАН, Москва. Total design cost reducing.
E N D
Верификация проектов сложных цифровых систем, специфицированных Алгоритмическими Машинами Состояний (Algorithmic State Machines, ASM) С.Л. Френкель Институт Проблем Информатики РАН, Москва
Total design cost reducing A work of a designer is resulted in two or three activities and human/equipment resources which have been spent for one of them should be kept back in another.
Algorithmic State machine (ASM) An Algorithmic State Machine (ASM) is the directed connected graph containing an initial vertex (Begin), a final vertex (End) and a finite set of operators and conditional vertices. The operators and conditional vertices have only one input, the initial vertex has no input. Initial and operator vertices have only one output, a conditional vertex has two outputs marked by "1“ and "0". A final vertex has no outputs. Each operator include some body in a pseudocode, and its execution takes a clock of the target system time The following are the major steps in the ASM methodology: • Describe the target system algorithm by ASM chart (using a pseudocode), • Design the datapath based on the ASM chart, • Design the control logic based on the detailed ASM chart, If followed correctly, the ASM method produces a hardware design in a systematic and logical manner • Very robust and easily modified • Refined through design iterations
ASM Example Let us an operator Yb be implemented. The sequence of the actions after Yb can be represented by ASM as following: The operator Y3 is executed after Yb when x1x4x3=1,Y1 is executed afterYb when x1x’3=1, Y5 is excuted after Yb when x1x4x’3=1 or x’1=1, that is: Yb→ x1x4x3Y3 + x1x4x'3Y5+ x1x'4Y1+ x'1Y5
Reuse and Decomposition Each gray box is an ASM description of some operations (macro-instructions). Arbitrary numbers of nesting are allowed.
Мост PCI2AXI • буферизированный мост (с трансляцией адресных пространств) (bridge). Основная задача моста - передача данных между двумя шинами PCI AXI • Запись с PCI на AXI. Под управлением Инициатора PCI и в согласовании с Исполнителем AXI2PCI в буфер контроллера записываются данные. Далее под управлением Ведущего AXI2PCI в согласовании с Ведомым AXI, буфер выгружается. • Чтение с AXI на PCI. Инициатор PCI запрашивает данные у Исполнителя AXI2PCI, Ведущий AXI2PCI запрашивает данные у Ведомого AXI. Далее под управлением Ведущего AXI2PCI и в согласовании с Ведомым AXI, данные загружаются в буфер. После этого под управлением Инициатора PCI и в согласовании с Исполнителем AXI2PCI, данные выгружаются из буфера.
Режимы • Состояния: • Инициатор PCI (Initiator) –передает данные по записи в контроллер (Исполнитель AXI2PCI) или запрашивает по чтению. • Исполнитель PCI (Target) – сторонний Агент, в который передаются данные по записи из контроллера (Инициатор AXI2PCI) или запрашиваются по чтению. • Ведущий AXI (Master) – сторонний Задатчик, который передает данные по записи в контроллер (Ведомый AXI2PCI) или запрашивает по чтению. • Ведомый AXI (Slave) - сторонний Агент, в который передаются данные по записи из контроллера (Ведомый AXI2PCI) или запрашиваются по чтению. • Режимы: • Запись с PCI на AXI. Под управлением Инициатора PCI и в согласовании с Исполнителем AXI2PCI в буфер контроллера записываются данные. Далее под управлением Ведущего AXI2PCI в согласовании с Ведомым AXI, буфер выгружается. • Чтение с AXI на PCI. Инициатор PCI запрашивает данные у Исполнителя AXI2PCI, Ведущий AXI2PCI запрашивает данные у Ведомого AXI. Далее под управлением Ведущего AXI2PCI и в согласовании с Ведомым AXI, данные загружаются в буфер. После этого под управлением Инициатора PCI и в согласовании с Исполнителем AXI2PCI, данные выгружаются из буфера.
Запись с AXI на PCI. Под управлением Ведущего AXI и в согласовании с Ведомым AXI2PCI в буфер контроллера записываются данные. Далее под управлением Инициатора AXI2PCI в согласовании с Исполнителем PCI, буфер выгружается. • Чтение с PCI на AXI. Ведущий AXI запрашивает данные у Ведомого AXI2PCI, Инициатор AXI2PCI запрашивает данные у Исполнителя PCI. Далее под управлением Инициатора AXI2PCI и в согласовании с Исполнителем PCI, данные загружаются в буфер. После этого под управлением Ведущего AXI и в согласовании с Ведомым AXI2PCI, данные выгружаются из буфера.
ASM-based verification (contd.) Translated ASM model is converted automatically in VHDL/VERILOG test bench of a behavior model of the target system, which is simulated by a well known tool, e.g. by ModelSim (Mentor Graphic). The detected output is the desirable behavior of the target system which should compare with the result of the structural synthesis , implemented by ABELITE (“Actual output”).This actual output is also the result of simulation by the same tool, e.g. ModelSim.
Примеры задач формальной спецификации дляPCI2AXI Bridge • Верифицируемыесвойства: правильный временной порядок обращений к устройствам, завершения транзакций, и т.д. • IRDY# (Initiator Rdy): в режиме записи данные валидны при управлении шиной от bus Master, во время чтения –готовность Master принимать данные. • FRAME: Определяет начало шинного цикла, начало адресной фазы передачи данных • CTL формула описывает свойство:FRAME должен быть выставлен раньше IRDY
Формальная верификация(contd.) Когда Master запрашивает транзакцию во время передачи данных,Target не должен давать подтверждение на переход в режим приема данных REQx# (Request): запрс от master к системному арбитеру
Системой переходов (моделью Крипке ) Т называют четверку K =< S, R, L, S0 >, где S — множество состояний, RSS-множество пар состояний, между которыми возможны переходы (complete transition relation) L : S → 2AP— функция, которая приписывает каждому состоянию те или иные логические условия (записанные на CTL), истинные в этом состоянии ( “ устанавливает метки”), S0 S – множество начальных состояний. • Если задан конечный автомат Мили M=<S, I,O, δ,λ, >, где I ={i},O, δ, λ , S 0- входы, выходы, функция переходов (δ) и выходов (λ) соответственно, то cтруктура Крипке для конечного автомата будет иметь вид:
Для автомата, описывающего счетчик по модулю 3 (, где rst-сигнал “reset” (устанавливает все разряды счетчика в 0 при rst=1), а cnt- сигнал синхронизации
System/Logic Designby Abelite(Prof. Samary Baranov, Holon Institute of Technology, Israel) ASM-description FSM FSM Micro operations RTL (VHDL) Design Tools (SYNOPSIS, CADENCE