Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Программируемые логические схемы и их применение»

Пытаюсь освоить Verilog что-то не получаются простые вещи. Может кто-то подскажет?

Отправлено ex51 08 октября 2007 г. 15:20


Что-то не могу в него въехать.

Например есть вектор переменной длины.
Пытаюсь установить в нём все единицы - он ругается:
делаю так
output SCLK[N-1:0];
...
SCLK <= {N{1'b0}};
получаю
Error (10673): SystemVerilog error: assignments to unpacked arrays must be aggregate expressions
Без ошибки получается только с помощью цикла, но как-то не нравится. Хочется без цикла.

И вообще не пойму идеологию.

Например мне надо выдать синхросигнал определенной длины по сигналу clk на языке программирования это было бы так:

setSinhro()
{
static counter = 0;

if(counter == 1600) { clkSin = 0; counter = 0; }
else { clkSin = 1; couter++; }
}
Вроде как по идее надо делать счетчик, но если так описывать каждый триггер то по моему помереть можно?

Сейчас написал так но не уверен:
module setSinhro (clk, sclk);
parameter N = 8;
input clk;
output sclk[N-1:0];

integer counter = 0;

always @(negedge clk)
begin
if(counter == 1537)
begin
// sclk <= {N{1'b0}}; // ругается
counter = 0;
end
else
begin
counter++;
// sclk <= {N{1'b1}}; // ругается
end

endmodule



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru