[an error occurred while processing this directive]
Дайте задачки по Verilog-у.
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено Mavr 08 июня 2004 г. 17:34

Дайте задачки по Verilog-у (желательно не только на знание языка, но и на сообразительность).

Я придумал одну, но боюсь кривовата:
Надо изменить модуль A, так чтобы:
1. Он был синтезируемый (и синхронный);
2. Модуль task1 не выводил ошибки;
3. Использовал наименьшее число триггеров.
4. Нельзя использовать комбинаторную логику для проверки делимости без остатка (кстати, а возможно ее спользовать?)


`timescale 1 us / 1 ns

module A(clk, reset, signal);
input clk, reset;
output signal;

wire clk, signal;

assign signal = clk;

endmodule

module task1;

reg clk;
reg reset;
wire signal;
integer i, rand;

A a0(clk, reset, signal);

initial // Clock generator
begin
i = 0;
clk <= 0;
reset <= 0;
#20 reset = 1;
forever #10 clk = !clk;
end

initial
#60000 $stop;


always @(posedge clk)
begin
rand = $random%9 + 10;
#(rand)
if (i%76 == 0)
begin
if (signal == 1'b0)
$display("Error");
end
else
begin
if (signal == 1'b1)
$display("Error");
end
if (i < 912)
i = i + 1;
else
i = 0;
end

endmodule

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru