Читайте также:
|
|
Ниже приведен пример выполнения генератора треугольных импульсов, содержащий модули счетчика и формирователя цифрового сигнала (модуля синхронизации нет). В нем также отсутствуют фрагменты формирования сигналов vclk и vblank.
/********* модуль формирователя цифрового сигнала*********/
module kp01(
input inclk, //вход синхронизации
output reg [7:0] blue=8'b00000000 //выход цифр. сигнала
);
wire [8:0] ci; //выход счетчика
count g1(inclk,ci); //экземпляр счетчика
initial
blue <= 8'b00000000;
always @(posedge inclk)
if ((ci > 10'd0)&&(ci < 10'd256))
blue <= ci[7:0];
else
blue <= 8'b00000000;
endmodule
/****************** модуль счетчика *********************/
module count(
input clk, //вход синхронизации
output reg [8:0] co //выход счетчика
);
initial
co<=9'b000000000;
always @ (posedge clk)
if (co < 9'd510) //максимальное значение
co <= co + 1'b1;
else
co <= 9'd0;
endmodule
Листинг. 1. Описание модулей формирователя цифрового сигнала
и счетчика синхроимпульсов
На рис. 3. представлены результаты моделирования приведенного выше проекта в пакете ModelSim при установке для 8-разрядного сигнала tblue аналогового формата представления данных.
Рис. 3. Представление выходных данных генератора в пакете ModelSim
в аналоговом формате
На рис. 4. представлены эти же результаты, но в более подробном масштабе по времени и в цифровом формате.
Рис. 4. Представление выходных данных генератора в пакете ModelSim
в цифровом формате (более крупный масштаб по оси времени)
Представленные на рисунках результаты получены с помощью испытательного файла приведенного ниже (лист. 2).
module t_kp01;
reg tclk;
wire [7:0] tblue;
kp01 g1(tclk,tblue);
initial
begin
tclk=1'b0;
#2000 $stop;
end
always //основное назначение испытательного модуля -
#1 tclk=~tclk; //формирование синхроимпульсов
endmodule
Листинг. 2. Содержимое испытательного файла
для моделирования генератора
Дата добавления: 2014-12-15; просмотров: 29 | Поможем написать вашу работу | Нарушение авторских прав |