«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

Спец курс (Избранные главы VHDL)/Вспомним VHDL — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
(Слайд: Горчие клавиши)
Строка 1: Строка 1:
 
<slideshow style="custis" headingmark="Слайд:" incmark=":step" scaled="true">
 
<slideshow style="custis" headingmark="Слайд:" incmark=":step" scaled="true">
;title: Введение в системы идентификации...
+
;title: '''Вспомнить все...'''
 
;author: Зайцев В.С.
 
;author: Зайцев В.С.
 
</slideshow>
 
</slideshow>
Строка 37: Строка 37:
 
</source>
 
</source>
 
=== Слайд: Entity ===
 
=== Слайд: Entity ===
 +
<slides split="-----" width="400">
 
<div class="tleft" style="clear:none">[[Файл:Пример_entity.jpg|600px|Entity]]</div>
 
<div class="tleft" style="clear:none">[[Файл:Пример_entity.jpg|600px|Entity]]</div>
 +
-----
 
<div class="tleft" style="clear:none">[[Файл:Пример_entity_код.jpg|600px|Entity]]</div>
 
<div class="tleft" style="clear:none">[[Файл:Пример_entity_код.jpg|600px|Entity]]</div>
 +
</slides>
 
<br clear="all" />
 
<br clear="all" />
  
Строка 46: Строка 49:
 
end beh;</source>
 
end beh;</source>
 
===Слайд:Architecture===
 
===Слайд:Architecture===
 +
<slides split="-----" width="400">
 
<div class="tleft" style="clear:none">[[Файл:Пример_architecture.jpg|600px|architecture]]</div>
 
<div class="tleft" style="clear:none">[[Файл:Пример_architecture.jpg|600px|architecture]]</div>
 +
-----
 
<div class="tleft" style="clear:none">[[Файл:Пример_architecture_код.jpg|600px|architecture]]</div>
 
<div class="tleft" style="clear:none">[[Файл:Пример_architecture_код.jpg|600px|architecture]]</div>
 +
 +
</slides>
 
<br clear="all" />
 
<br clear="all" />
  
Строка 77: Строка 84:
 
<div style="border: 2px solid #AEA; padding: 0.4em; border-bottom: none; border-right: none; background: HoneyDew">
 
<div style="border: 2px solid #AEA; padding: 0.4em; border-bottom: none; border-right: none; background: HoneyDew">
 
<div class="tleft" style="clear:none">[[Файл:When_else_code.jpg|when else code]]</div>
 
<div class="tleft" style="clear:none">[[Файл:When_else_code.jpg|when else code]]</div>
 
 
<br clear="all" />
 
<br clear="all" />
 
</div>
 
</div>
Строка 83: Строка 89:
 
==Слайд:Работа с редактором EMACS==
 
==Слайд:Работа с редактором EMACS==
 
'''''{{Сн|Emacs }}(Ема́кс, Е́макс, также И́макс) — семейство многофункциональных расширяемых текстовых редакторов.'''''
 
'''''{{Сн|Emacs }}(Ема́кс, Е́макс, также И́макс) — семейство многофункциональных расширяемых текстовых редакторов.'''''
 +
 +
<slides split="-----" width="400">
 +
[[Файл:Марк Цукерберг фото емакс]]
 +
</slides>
 +
  
 
===Слайд: Первый запуск ===
 
===Слайд: Первый запуск ===
 +
Команда для запуска
 +
'''emacs'''
 +
[[Файл:Emacs_view.jpg]]
  
 
===Слайд: Горчие клавиши ===
 
===Слайд: Горчие клавиши ===
Строка 166: Строка 180:
 
| paste
 
| paste
 
| Ctrl-Y
 
| Ctrl-Y
|
+
| shell
|
+
| M-x shell
 
|}
 
|}
  
===Слайд: Возможности ===
+
===Слайд: Возможности :step===
 +
 
 +
* Знает и подскажет <big>{{Сн|'''базовые конструкции'''}}</big>
 +
* Подсветка <big>{{Сн|'''синтаксиса'''}}</big>
 +
* <big>{{Сн|'''Анализ'''}}</big> существующего {{Сн|<big>'''кода'''</big>}} и добавление уже написанных "слов"
 +
* Автоматическая генерация кода простейшего <big>{{Сн|'''тестового окружения'''}}</big>
 +
* Добавление декларации  <big>{{Сн|'''component'''}}</big>
 +
* Добавление декларации <big>{{Сн|'''instance'''}}</big>
 +
* Добавление декларации <big>{{Сн|'''signal'''}}</big>
 +
* Возможность работы с <big>{{Сн|'''консолью'''}}</big>
 +
* Возможность работы с <big>{{Сн|'''с несколькими окнами одновременно'''}}</big>
 +
* И многое, многое другое полезное.
 +
 
 +
 
 +
==Слайд: Работа с системой моделирования QuestaSim от Mentor Graphics :step ==
 +
 
 +
* {{Ор|<big>Где моделировать?</big>}}
 +
* <big>{{Зел|'''''QuestaSIM'''''}}</big>
 +
* Язык {{Сн|'''VHDL, Verilog, SystemC, SystemVerilog'''}}
 +
* Смешанное моделирование (все что выше + {{Кр|'''Spice'''}})
 +
* Автоматизация (поддерживаются скрипты TCL)
 +
* Работа по сети (JobSpy сервер)
 +
* Мощнейший инструмент верификации
 +
** '''Покрытие''' кода
 +
** '''Покрытие''' переходов
 +
** '''Проверка''' значений
 +
** Поддержка пакетов и стандарта '''верификации''' OVM
 +
* Пакет моделирования подключается и в '''MentorGraphics''' и в '''Cadence'''
 +
 
 +
 
 +
 
 +
===Слайд: Запуск QuestaSim ===
 +
{{Фио|<big>'''vsim'''</big>}}
  
==Работа с системой моделирования QuestaSim от Mentor Graphics==
+
[[Файл:Questa_adms_ex.jpg|700px|Окно программы QuestaSim]]
===Запуск QuestaSim===
+
# Создание библиотеки
===Создание библиотеки===
+
## {{Сн|'''<big>vlib</big>'''}}
===Компиляция кода===
+
# Компиляция кода
===Запуск моделирования===
+
## {{Сн|'''<big>vcom</big>'''}}
===Добавление сигналов===
+
# Запуск моделирования
===Запуск исполнения и просмотр результата===
+
## {{Сн|'''<big>vsim</big>'''}}
 +
# Добавление сигналов
 +
## {{Сн|'''<big>add wave</big>'''}}
 +
# Запуск исполнения и просмотр результата
 +
## {{Сн|'''<big>run</big>'''}}

Версия 14:58, 18 сентября 2012

Заголовок
Вспомнить все...
Автор
Зайцев В.С.
Нижний колонтитул
Спец курс (Избранные главы VHDL)/Вспомним VHDL
Дополнительный нижний колонтитул
Зайцев В.С., 00:27, 29 сентября 2015

Содержание

Слайд:Языки описания аппаратуры

  • С начала 70-х годов стала актуальна проблема создания стандартного средства документации схем и алгоритмов дискретных систем переработки информации, пригодных как для восприятия человеком, так и для обработки в ЭВМ.
  • Этим средством явились языки VHDL и Verilog
  • Стандартность (лучше плохой, чем никакого)
  • Многоаспектность и многоуровневость
    • Схемы
    • Тестовые окружения
    • Диапазон детализации
  • Человеко-машинность
    • Язык описания
    • Средство документирования
  • Было много предшественников
    • «МОДИС », «Автокод», «Модис-В78», «MPL», «OCC-2», «Форос», «Алгоритмы», «Пульс», «Симпатия»
    • CDL, DDL, ISPS, CONLAN, HILO

VHDL-основные конструкции

Entity

library ieee;
use ieee.std_logic_1164.all;
 
entity xc is
 
  port (
    clk : in  std_logic;
    d   : out std_logic);
 
end xc;

Слайд: Entity

Entity
Entity


Architecture

architecture beh of trig is
begin  -- beh
end beh;

Слайд:Architecture

architecture
architecture


Process

  trig_process: process (clk, rst)
  begin  -- process trig_process
    if rst = '0' then                   -- asynchronous reset (active low)
      data_out <= '0';
    elsif clk'event and clk = '1' then  -- rising clock edge
      data_out <= data_in;
    end if;
  end process trig_process;

Слайд: Process

architecture


When Else

t1 <= not t1 when clk'event and clk = '1' else
      t1;

Слайд:When Else

Данная запись является компактным описанием триггера, но она не соответствует стандарту синтезируемого подмножества. Поэтому не все системы синтеза её поддерживают. Например, Leonardo Spectrum синтезирует данную конструкцию, а в ранних версиях Synopsys`а эта запись не поддерживалась.

when else code


Слайд:Работа с редактором EMACS

Emacs (Ема́кс, Е́макс, также И́макс) — семейство многофункциональных расширяемых текстовых редакторов.


Слайд: Первый запуск

Команда для запуска

emacs 

Emacs view.jpg

Слайд: Горчие клавиши

Действие Hot key Действие Hot key
command mode Alt-X open file Ctrl-X Ctrl-F
insert file Ctrl-Xi save file Ctrl-X Ctrl-S
save as file Ctrl-X Ctrl-W name close file Ctrl-XK
change buffer Ctrl-XB undo Ctrl-XU, Ctrl-_
redo Ctrl-^ exit Ctrl-X Ctrl-C
word left Alt-B word right Alt-F
start of line Ctrl-A end of line Ctrl-E
page up Alt-V page down Ctrl-V
start of buffer Alt-< end of buffer Alt->
line n Alt-G n. word left Alt-DEL
word right Alt-D end of line Ctrl-K
line Ctrl-A Ctrl-K search Ctrl-S text
replace Alt-% start selection Ctrl-SPACE
cut Ctrl-W copy Alt-W
paste Ctrl-Y shell M-x shell

Слайд: Возможности :step

  • Знает и подскажет базовые конструкции
  • Подсветка синтаксиса
  • Анализ существующего кода и добавление уже написанных "слов"
  • Автоматическая генерация кода простейшего тестового окружения
  • Добавление декларации component
  • Добавление декларации instance
  • Добавление декларации signal
  • Возможность работы с консолью
  • Возможность работы с с несколькими окнами одновременно
  • И многое, многое другое полезное.


Слайд: Работа с системой моделирования QuestaSim от Mentor Graphics :step

  • Где моделировать?
  • QuestaSIM
  • Язык VHDL, Verilog, SystemC, SystemVerilog
  • Смешанное моделирование (все что выше + Spice)
  • Автоматизация (поддерживаются скрипты TCL)
  • Работа по сети (JobSpy сервер)
  • Мощнейший инструмент верификации
    • Покрытие кода
    • Покрытие переходов
    • Проверка значений
    • Поддержка пакетов и стандарта верификации OVM
  • Пакет моделирования подключается и в MentorGraphics и в Cadence


Слайд: Запуск QuestaSim

vsim

Окно программы QuestaSim

  1. Создание библиотеки
    1. vlib
  2. Компиляция кода
    1. vcom
  3. Запуск моделирования
    1. vsim
  4. Добавление сигналов
    1. add wave
  5. Запуск исполнения и просмотр результата
    1. run