[an error occurred while processing this directive]
Подскажите, почему эта хрень в макс плюсе не компилится (пишет, что модуль mode1 должен быть модулем или блоком или...), а в ISE е замечательно проходит
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

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

Отправлено axalay 26 ноября 2003 г. 12:00

//Модуль защиты от дребезга 12-ти импульсных входов с изменяемым периодом защиты
module DREBEZG (START, CS, CLK, WR, AL, AD, IN, O);
input START;
input CS; //Выбор цифровых каналов
input CLK; //Тактовая частота 1 кГц
input WR; //СИгнал записи процессора
input [6:0] AL; //Шина адреса процессора
input [7:0] AD; //Шина адреса/данных процессора
input [11:0] IN; //Входы с цифровых датчиков
output [11:0] O; //Выходы после зациты от дребезга
reg [7:0] MA, MB, MC, MD, ME, MF, MG, MH, MJ, MK, ML, MM;
wire [11:0] O;

PRO mode1 (CLK, IN[0], MA, O[0]); //Защита от дребезга 1-го канала
PRO mode2 (CLK, IN[1], MB, O[1]); //Защита от дребезга 2-го канала
PRO mode3 (CLK, IN[2], MC, O[2]); //Защита от дребезга 3-го канала
PRO mode4 (CLK, IN[3], MD, O[3]); //Защита от дребезга 4-го канала
PRO mode5 (CLK, IN[4], ME, O[4]); //Защита от дребезга 5-го канала
PRO mode6 (CLK, IN[5], MF, O[5]); //Защита от дребезга 6-го канала
PRO mode7 (CLK, IN[6], MG, O[6]); //Защита от дребезга 7-го канала
PRO mode8 (CLK, IN[7], MH, O[7]); //Защита от дребезга 8-го канала
PRO mode9 (CLK, IN[8], MJ, O[8]); //Защита от дребезга 9-го канала
PRO mode10 (CLK, IN[9], MK, O[9]); //Защита от дребезга 10-го канала
PRO mode11 (CLK, IN[10], ML, O[10]); //Защита от дребезга 11-го канала
PRO mode12 (CLK, IN[11], MM, O[11]); //Защита от дребезга 12-го канала

//Сохранение длительности интервала защиты от дребезга
always @(posedge WR or negedge START)
if (!START)
begin
MA = 8'b11111111;
MB = 8'b11111111;
MC = 8'b11111111;
MD = 8'b11111111;
ME = 8'b11111111;
MF = 8'b11111111;
MG = 8'b11111111;
MH = 8'b11111111;
MJ = 8'b11111111;
MK = 8'b11111111;
ML = 8'b11111111;
MM = 8'b11111111;
end //if
else if (CS)
begin
if (AL == 60)
MA = AD;
else if (AL == 61)
MB = AD;
else if (AL == 62)
MC = AD;
else if (AL == 63)
MD = AD;
else if (AL == 64)
ME = AD;
else if (AL == 65)
MF = AD;
else if (AL == 66)
MG = AD;
else if (AL == 67)
MH = AD;
else if (AL == 68)
MJ = AD;
else if (AL == 69)
MK = AD;
else if (AL == 70)
ML = AD;
else if (AL == 71)
MM = AD;
end //else if
endmodule //DREBEZG
//********************************************************
//Защита от дребезга
module PRO (CLK, I, MODULE, OUT);
input CLK; //Тактовая частота 1 кГц
input I;
input [7:0] MODULE;
output OUT;
reg [7:0] A;
reg O;
reg X; //Переход от 0 к 1
reg Y; //Переход от 1 к 0
reg TIME;
reg OUT;

//8-ми разрядный счетчик по загружаемому модулю
always @(posedge CLK)
begin
if (A == MODULE)
begin
A = 0;
TIME = 1'b1;
end //if
else
begin
A = A +1;
TIME = 1'b0;
end //else
end //always
//Контроль перехода от 0 к 1
always @(negedge TIME or negedge I)
if (!I)
X = 1'b0;
else
X = 1'b1;
//Контроль перехода от 1 к 0
always @(negedge TIME or posedge I)
if (I)
Y = 1'b0;
else
Y = 1'b1;
//Формирование защищенного от дребезга сигнала (при MODULE > 0)
always @(posedge TIME)
if (X)
O = 1'b1;
else if (Y)
O = 1'b0;
//Формирование выходного сигнала
always @(MODULE)
if (MODULE == 0)
OUT = I;
else
OUT = O;
endmodule //PRO

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru