g614380

Проблема Создания Временных Диаграмм В Modelsim

2 сообщения в этой теме

g614380    0

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

Не так давно начал освоение ПЛИС на языке Verilog. Пишу в Quartus2 9.0. Описывал простенькие модули и симулировал прямо в квартусе, в его встроенном симуляторе построения диаграмм.

Тестбенчи сам никогда еще не писал. Но вот решил что пришло время и нужно осваивать Modelsim.

Кое что нарыл в интернете, а точнее последовательность действий, которые описывают каким образом подкрепить тестируемый модуль и сам тестбенч в Modelsim прям из квартуса.

Тестбенч и модуль взял готовый описанный в одной из статей:

module counter (

input wire reset,

input wire clk,

input wire [7:0]wdata,

input wire wr,

output reg [7:0]data

);

always @ (posedge clk or posedge reset)

if (reset)

data <= 8'h00;

else

if(wr)

begin

data <= wdata;

$display("written %h",wdata);

end

else

data <= data + 8'h01;

endmodule

собственно модуль

module test_counter;

reg reset, clk, wr;

reg [7:0]wdata;

wire [7:0] data_cnt;

//устанавливаем экземпляр тестируемого модуля

counter counter_inst(reset, clk, wdata, wr, data_cnt);

//моделируем сигнал тактовой частоты

always

#10 clk = ~clk;

//от начала времени...

initial

begin

clk = 0;

reset = 0;

wdata = 8'h00;

wr = 1'b0;

//через временной интервал "50" подаем сигнал сброса

#50 reset = 1;

//еще через время "4" снимаем сигнал сброса

#4 reset = 0;

//пауза длительностью "50"

#50;

//ждем фронта тактовой частоты и сразу после нее подаем сигнал записи

@(posedge clk)

#0

begin

wdata = 8'h55;

wr = 1'b1;

end

//по следующему фронту снимаем сигнал записи

@(posedge clk)

#0

begin

wdata = 8'h00;

wr = 1'b0;

end

end

и тестбенч к нему.

Все это подгрузил в Modelsim, ошибок при этом никаких не выдало, но вот диаграммы почему то не построились.

Может кто подскажет в чем ошибка и куда рыть. Или ссылочку на хорошую статейку или книгу.

Всем заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
krend    0

1 Ставьте соответствие между сигналами в вашем модуле с сигналами из тестбенча.

2 в блоке initial begin задаются только начальные значения сигналов. блокам always @ там совершенно не место.

3 если тебе необходимо чередовать значения wr, wrdata предлагаю завести регистр, который по положительному фронту сигнала clk будет инкреметироваться. Получится, что данный регистр будет равен либо 1 либо 0. В зависимости от этого ставите условия чему должны быть равны wr, wdata.

Простите писать не очень удобно...

`timescale 1ns / 1ps

module test_counter;
// Inputs
reg reset;
reg clk;
reg [7:0] wdata;
reg wr;
// Outputs
wire [7:0] data;
// Instantiate the Unit Under Test (UUT)
counter_cxem_net uut (
 .reset(reset),
 .clk(clk),
 .wdata(wdata),
 .wr(wr),
 .data(data)
);
initial begin
 // Initialize Inputs
 reset = 0;
 clk = 0;
 wdata = 0;
 wr = 0;




 //через временной интервал "50" подаем сигнал сброса
   #50 reset = 1;
 //еще через время "4" снимаем сигнал сброса
   #4 reset = 0;
 //пауза длительностью "50"
 end // initial begin



   always @(posedge clk)
   begin
   wdata = 8'h55;
   wr = 1'b1;
   end


 always
  begin
  #5 clk=!clk;
  end
endmodule

Изменено пользователем krend

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Синонимы. Анальное(ая)... что напишете? Пока что все Ваши утверждения также бездоказательны, как обвинения России в отравлении Скрипалей.
    • Чё за спор?!

      По резистору на 330 Ом к выходу усилка + наушники хотя бы на 100у.е., и тестируте/сравнивайте свои усилки.
      Искажения в АС 1~3 %, в нормальных наушниках бывает даже 0.02%.

      Прослушка в наушниках убирает сторонние факторы, метраж помещения, обстановку (материал стен, мебель, ковры и прочая хрень...), а так же сводит к минимуму искажения как говорил выше.
      К тому же очень просто сделать простейший коммутатор что бы переключаться на лету и устроить даже себе слепой тест.

      Как то слушал в студиных наушниках Pioneer A5 с ЭА (0.007%) и Sony TA-S2 (0.01%) оба с отключенными тембрами, звук совершенно разный, Сони с полевиками в ВК показался "мыльным".
    • Да уж. Говорили говорили, и всё попусту. Как можно узнать какой звук у источника не применив усилитель???  А применив любой усилитель мы уже слушаем не только источник, но и усилитель в том числе. Не только усилитель конечно но и АС и помещение. Поэтому каждый конкретный человек может только считать что либо "правильным" на основе своего восприятия, слухового опыта и пр. и т.п. Был же случай когда ЭКСПЕРТОВ посадили перед ширмой за которой была звуковоспроизводящая аппаратура и реальные музыканты. И ЭКСПЕРТЫ предпочли музыкантам звуковоспроизводящую аппаратуру. А вы говорите правильность... Вкусовщина в голом виде у каждого кто слышит разницу, тем кто её не слышит или убедил себя что её нет гораздо  проще
    • В виде статьи в научном журнале из списка ВАК, это как минимум. В иделе из спиcка SKOPUS. Ну и интересуйтесь иногда современной наукой. На международных конференциях обсуждается и не такое. Вот только что вам мешает заявить о себе мировому научному сообществу - загадка. Кстати, а как ваша "гениальная" теория объясняет генерацию ЭДС на PN переходе под воздействием света? Вы ж про этот феномен предпочли умолчать.
    • По крайней мере, "дырочная проводимость" у меня вызывает гораздо меньший внутренний когнитивный диссонанс, чем "термоэлектрическая проводимость" в вышеприведённой статье. С уважением, Сергей
    • Могу предоставить. В каком виде? В виде статьи на форуме? Я ставил. Потому и спросил.