19.02.2016 Моделирование verilog

Материал из SRNS
Перейти к: навигация, поиск
Строка 6: Строка 6:
 
Итак, задача состоит в том, чтобы с помощью Modelsim провести моделирование кода Verilog.
 
Итак, задача состоит в том, чтобы с помощью Modelsim провести моделирование кода Verilog.
  
# Создаём файл, который будем моделировать
+
== Создаём файл, который будем моделировать ==
 
<source lang="verilog">
 
<source lang="verilog">
 
`timescale 1ns/1ns
 
`timescale 1ns/1ns
Строка 26: Строка 26:
 
Первая строка задаёт темп моделирования. Строка "always #5 clk=!clk;" задаёт тактовый сигнал - каждые 5 интервалов времени, указанных в timescale. Остальной код тривиален.
 
Первая строка задаёт темп моделирования. Строка "always #5 clk=!clk;" задаёт тактовый сигнал - каждые 5 интервалов времени, указанных в timescale. Остальной код тривиален.
  
# Создаём новую библиотеку. Пусть для примера она называется "tb":
+
== Создаём новую библиотеку. Пусть для примера она называется "tb": ==
  
[[File:20160219_questa_newlib_1.png|400px]] [[File:20160219_questa_newlib_2.png|400px]]
+
[[File:20160219_questa_newlib_1.png]] [[File:20160219_questa_newlib_2.png]]
  
# Компилируем файл verilog.
+
== Компилируем файл verilog. ==
  
[[File:20160219_questa_compile.png|400px]] [[File:20160219_questa_compile_2.png|400px]] [[File:20160219_questa_compile_3.png|400px]]
+
[[File:20160219_questa_compile.png]] [[File:20160219_questa_compile_2.png]] [[File:20160219_questa_compile_3.png]]
  
# Запускаем симуляцию - без оптимизации! (Simulate without optimization)
+
== Запускаем симуляцию - без оптимизации! (Simulate without optimization) ==
  
 
[[File:20160219_questa_simulate_1.png|400px]]
 
[[File:20160219_questa_simulate_1.png|400px]]
  
# Добавляем требуемые сигналы в окно отображения Wave
+
== Добавляем требуемые сигналы в окно отображения Wave ==
  
 
[[File:20160219_questa_simulate_2.png|400px]]
 
[[File:20160219_questa_simulate_2.png|400px]]
  
# Запускаем симуляцию - выбираем длительность и нажимаем кнопку запуска (справа от поля ввода длительности)
+
== Запускаем симуляцию - выбираем длительность и нажимаем кнопку запуска (справа от поля ввода длительности) ==
  
 
[[File:20160219_questa_simulate_3.png|400px]]
 
[[File:20160219_questa_simulate_3.png|400px]]
  
# В окне Wave смотрим результаты
+
== В окне Wave смотрим результаты ==
  
 
[[File:20160219_questa_wave_1.png|400px]]
 
[[File:20160219_questa_wave_1.png|400px]]
  
 
{{wl-publish: 2016-02-19 14:26:27 +0300 | Boldenkov }}
 
{{wl-publish: 2016-02-19 14:26:27 +0300 | Boldenkov }}

Версия 16:05, 19 февраля 2016


Итак, задача состоит в том, чтобы с помощью Modelsim провести моделирование кода Verilog.

Содержание

Создаём файл, который будем моделировать

`timescale 1ns/1ns

module tb();
   reg clk = 1'b0;

   always #5 clk=!clk;

   reg [4:0] cnt=5'b0;

   always @(posedge clk) begin
      cnt <= cnt+1;
   end
   
endmodule

Первая строка задаёт темп моделирования. Строка "always #5 clk=!clk;" задаёт тактовый сигнал - каждые 5 интервалов времени, указанных в timescale. Остальной код тривиален.

Создаём новую библиотеку. Пусть для примера она называется "tb":

20160219 questa newlib 1.png 20160219 questa newlib 2.png

Компилируем файл verilog.

20160219 questa compile.png 20160219 questa compile 2.png 20160219 questa compile 3.png

Запускаем симуляцию - без оптимизации! (Simulate without optimization)

20160219 questa simulate 1.png

Добавляем требуемые сигналы в окно отображения Wave

20160219 questa simulate 2.png

Запускаем симуляцию - выбираем длительность и нажимаем кнопку запуска (справа от поля ввода длительности)

20160219 questa simulate 3.png

В окне Wave смотрим результаты

20160219 questa wave 1.png


[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты