19.02.2016 Моделирование verilog
Материал из SRNS
Boldenkov (обсуждение | вклад) |
Boldenkov (обсуждение | вклад) |
||
Строка 36: | Строка 36: | ||
== Запускаем симуляцию - без оптимизации! (Simulate without optimization) == | == Запускаем симуляцию - без оптимизации! (Simulate without optimization) == | ||
− | [[File:20160219_questa_simulate_1.png | + | [[File:20160219_questa_simulate_1.png]] |
== Добавляем требуемые сигналы в окно отображения Wave == | == Добавляем требуемые сигналы в окно отображения Wave == | ||
− | [[File:20160219_questa_simulate_2.png | + | [[File:20160219_questa_simulate_2.png]] |
== Запускаем симуляцию - выбираем длительность и нажимаем кнопку запуска (справа от поля ввода длительности) == | == Запускаем симуляцию - выбираем длительность и нажимаем кнопку запуска (справа от поля ввода длительности) == | ||
− | [[File:20160219_questa_simulate_3.png | + | [[File:20160219_questa_simulate_3.png]] |
== В окне Wave смотрим результаты == | == В окне Wave смотрим результаты == |
Версия 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
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":
Компилируем файл verilog.
Запускаем симуляцию - без оптимизации! (Simulate without optimization)
Добавляем требуемые сигналы в окно отображения Wave
Запускаем симуляцию - выбираем длительность и нажимаем кнопку запуска (справа от поля ввода длительности)
В окне Wave смотрим результаты
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.