[an error occurred while processing this directive]
|
Симулятор АктивХДЛ 6.2.
Тест бенч, проганяет все адреса и все данные на каждый аддрес.
ниже привожу усеченный код, только цикл по адресам и цикл по данным.
module tt ();
reg [6:0]address;
reg [7:0]data;
always
begin
for (address = 0; address < 7'b1111111; address=address+1 )
for (data = 0; data < 8'b11111111; data=data+1)
begin
$display (address);
$display (data);
#10;
//I2C_7A_toSlave (address, data);
end
$stop;
end
endmodule
Что имеем в результате:
Данные пробигают все значения от 0 до 254 (!!!! не до 255) после чего увеличивается адрес и при этом адрес пробигает значения от 0 до 126 (а не до 127!!!!!!!) То есть, увеличение значения приисходит ДО того как ПРОИСХОДИТ сравнение с верхней границей в конструкции FOR. Я конечно понимаю, что Верилог это язык описания параллельных процессов, но не до такой же степени что невозможно сделать цикл в цикле подобные С-шным. Вообшем вопрос, как правильно и КРАСИВО описать полный перебор адресов и данных на Верилоге ?
E-mail: info@telesys.ru