2_2 (774786), страница 2
Текст из файла (страница 2)
| Q3 | ||||
| Q2 | 2 | 1 | 1 | 1 |
| 2 | 3 | 2 | 2 | |
| Q1 | ||||
Рис.1.26
Создадим новый проект с названием var13 в САПР WEB PACK ISE 6.3.01i для реализации проектируемого устройства на основе ПЛИС XC9536. Выбираем способ введения исходных данных схемотехнический; семейство ПЛИС, на базе которого разрабатывается устройство xc9500 CPLDs; тип кристалла xc9536; тип корпуса PC44; быстродействие кристалла 5; средства синтеза устройства XST (VHDL/Verilog); программу моделирования Modelsim; язык моделирования Verilog. Указываем первый подключаемый ресурс var13.sch, имеющий тип schematic.
Подготовим описание данного устройства в схемотехнической форме в САПР WEB PACK ISE.Согласно выведенным формулам (1.1) схема счетчика, построенного на трех D-триггерах, имеет вид, представленный на рис.1.27.
Рис.1.27
Для построения счетчика используем D триггер FDCP (см. рис.1.8) из функциональной группы Flip-Flop. Для синхросигнала C рисуем одиночный провод, который соединяем с входами С триггеров. Устанавливаем на этом проводе входной маркер (Input marker). Для получения входов D
, i= 1,2,3 триггеров по формулам (1.1) используем логические элементы, которые находятся в функциональной группе Logic: 1) AND2B1 - логический элемент 2И с инверсией по одному из входов (рис.1.28,а) с выполняемой функцией О =
& I1; 2) AND3B1 - логический элемент ЗИ с инверсией по одному из входов (рис.1.28,б) с реализуемой функцией О =
& 11 & 12; 3) OR3 - логический элемент ЗИЛИ (рис.1.28,в) с выполняемой функцией О = I0
I1
I2; 4) XOR2 - логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (рис.1.28,г) с реализуемой функцией О = I0
I1; 5) INV- инвертор (рис.1.28,д) с выполняемой функцией О =
.
а) б) в) г) д)
Рис.1.28
Формируем две шины: PRE[3:1] и CLR[3:1]. Обозначаем соответствующие входы триггеров PRE[3], PRE[2], PRE[1], CLR[3], CLR[2], CLR[1]. Устанавливаем на шинах входные маркеры.
Для построения схемы распределителя сигналов согласно формулам (1.2) используем логические элементы функциональной группы Logic: AND3B1, AND2B1, AND2B2 - логический элемент 2И с инверсией по входам (рис.1.29,а) с выполняемой функцией О=
&
; AND2 - логический элемент 2И (рис.1.29,б) с реализуемой функцией О = I0 & I1; OR2 - логический элемент 2ИЛИ (рис.1.29,в) с функцией О = I0
I1.
а) б) в)
Рис.1.29
Формируем шины Y[3:1] и Q[3:1]. Присоединяем выходы «y» через отводы к шине Y[3:1], вводим обозначения Y[3], Y[2], Y[1]. Выходы триггеров обозначаем: Q[3], Q[2], Q[1]. Устанавливаем выходные маркеры (Output marker).
Сохраняем файл схемотехнического описания спроектированного заданного устройства распределителя сигналов (рис.1.30).
Создадим файл временных и топологических ограничений в соответствии с вариантом 13 (привязка цепи С к 43 выводу ПЛИС, длительность периода cинхросигнала для цепи С – 30ns) со следующим содержимым:
NET C LOC = P43; NET C PERIOD = 30 NS;
Рис.1.30
Результаты изменений временных ограничений можно просмотреть с помощью редактора временных ограничений, для чего нужно дважды нажать на Create Timing Constraints в окне процессов, тогда откроется окно программы Constraints Editor (рис.1.31).
Рис.1.31
Графическое изображение кристалла со всеми выводами получаем при вызове процесса Assign Package Pins (рис.1.32).
Рис.1.32
Результаты привязки выводов схемы приведены на рис.1.33.
Рис.1.33
Выполним синтез устройства на ПЛИС в САПР WEB PACK ISE 6.3.01i. В результате синтеза формируется отчет, содержимое которого можно просмотреть с помощью команды View Synthesis Report:
Release 6.3i - xst G.35
Copyright (c) 1995-2004 Xilinx, Inc. All rights reserved.
--> Parameter TMPDIR set to __projnav
CPU : 0.00 / 0.53 s | Elapsed : 0.00 / 1.00 s
--> Parameter xsthdpdir set to ./xst
CPU : 0.00 / 0.53 s | Elapsed : 0.00 / 1.00 s
--> Reading design: var13.prj
TABLE OF CONTENTS
1) Synthesis Options Summary
2) HDL Compilation
3) HDL Analysis
4) HDL Synthesis
5) Advanced HDL Synthesis
5.1) HDL Synthesis Report
6) Low Level Synthesis
7) Final Report
===============* Synthesis Options Summary *==============
---- Source Parameters
Input File Name : var13.prj
Input Format : mixed
Ignore Synthesis Constraint File : NO
Verilog Include Directory :
---- Target Parameters
Output File Name : var13
Output Format : NGC
Target Device : xc9500
---- Source Options
Top Module Name : var13
Automatic FSM Extraction : YES
FSM Encoding Algorithm : Auto
Mux Extraction : YES
Resource Sharing : YES
---- Target Options
Add IO Buffers : YES
Equivalent register Removal : YES
MACRO Preserve : YES
XOR Preserve : YES
---- General Options
Optimization Goal : Speed
Optimization Effort : 1
Keep Hierarchy : YES
RTL Output : Yes
Hierarchy Separator : _
Bus Delimiter : <>
Case Specifier : maintain
---- Other Options
lso : var13.lso
verilog2001 : YES
wysiwyg : NO
=============* HDL Compilation *===============
Compiling source file "var13.vf"
Module compiled
No errors in compilation
Analysis of file succeeded.
==============* HDL Analysis *===============
Analyzing top module .
Module is correct for synthesis.
Set user-defined property "INIT = 0" for instance in unit .
Set user-defined property "INIT = 0" for instance in unit .
Set user-defined property "INIT = 0" for instance in unit .
Analyzing module .
Analyzing module .
Analyzing module .
Analyzing module .
Analyzing module .
Analyzing module .
Analyzing module .
Analyzing module .
Analyzing module .
===============* HDL Synthesis *==============
Synthesizing Unit .
Related source file is var13.vf.
Unit synthesized.
===============* Advanced HDL Synthesis *=============
Advanced RAM inference ...
Advanced multiplier inference ...
Advanced Registered AddSub inference ...
Dynamic shift register inference ...
==============HDL Synthesis Report
Found no macro
===================================================================* Low Level Synthesis *=============
Optimizing unit ...
implementation constraint: source_filename : D1
implementation constraint: source_linenb : D1
implementation constraint: INIT=0 : D1
implementation constraint: KEEP : D1
implementation constraint: source_filename : D2
implementation constraint: source_linenb : D2
implementation constraint: INIT=0 : D2
implementation constraint: KEEP : D2
implementation constraint: source_filename : D3
implementation constraint: source_linenb : D3
implementation constraint: INIT=0 : D3
implementation constraint: KEEP : D3
==============* Final Report *==============
Final Results
RTL Top Level Output File Name : var13.ngr
Top Level Output File Name : var13
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : YES
Target Technology : xc9500
Macro Preserve : YES
XOR Preserve : YES
wysiwyg : NO
Design Statistics
# IOs : 13
Cell Usage :
# BELS : 6
# AND2 : 1
# INV : 1
# OR2 : 2
# OR3 : 1
# XOR2 : 1
# FlipFlops/Latches : 3
# FDCP : 3
# IO Buffers : 13
# IBUF : 7
# OBUF : 6
# Others : 7
# AND2B1 : 4
# AND2B2 : 1
# AND3B1 : 2
======================================================
CPU : 1.58 / 2.44 s | Elapsed : 2.00 / 3.00 s
--> Total memory usage is 49728 kilobytes.
Результаты синтеза в схемотехническом виде показаны на рис.1.34.
Рис.1.34
На этом выполнение лабораторной работы завершается, остальные этапы проектирования устройства на ПЛИС будут выполнены в лабораторной работе №2.
Для вариантов 16-18, 22, 25, 27 - 33 распределитель сигналов должен быть реализован на базе счетчика Джонсона. Тогда необходимое число триггеров вдвое меньше длины заданной в данном варианте последовательности. Например, если схема распределителя сигналов должна выдавать сигналы «y» в последовательности: 4,2,2,4,3,2,1,2,…, то схема счетчика Джонсона на четырех D-триггерах будет иметь вид, представленный на рис.1.35.
Рис.1.35
Тогда получим таблицу 1.4 переходов для триггеров и таблицу 1.5 переходов для распределителя сигналов.
Таблица 1.4
| Q4(t) | Q3(t) | Q2(t) | Q1(t) | D4 | D3 | D2 | D1 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
| 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
Таблица 1.5
| Q4(t) | Q3(t) | Q2(t) | Q1(t) | Y | Y1 | Y2 | Y3 | Y4 |
| 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 | 2 | 0 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 | 4 | 0 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 3 | 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 | 2 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 2 | 0 | 1 | 0 | 0 |
Карта Вейча изображена на рис.1.36.
| Q4 | |||||
| Q3 | 2 | 4 | |||
| 3 | 2 | Q1 | |||
| 1 | 2 | ||||
| 2 | 4 | ||||
| Q2 | |||||
Рис.1.36
Для выходных сигналов после минимизации получаем:
Далее лабораторная работа выполняется аналогично описанному выше примеру.
44















