реклама на сайте
подробности

 
 
> Интересная задачка с generate, Вроде все просто
-=Vitaly=-
сообщение Apr 26 2007, 12:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



Здравствуйте Уважаемые любители нового и интересного smile.gif

Подкинули мне сегодня интересную задачку. Она вроде бы не сложная, но я запутался.

Имеем входной сигнал ADC_DATA_IN[7:0] , адрес ADR_CLUSTER, и сигнал резрешения записи AGC_MAX_WR_EN. Также имеется 32 MAX_DATA_REG регистра [7:0], которые адрсуются ADR_CLUSTER.
Задача взять значение MAX_DATA_REG[ADR_CLUSTER], сравнить его со входным ADC_DATA_IN и если
ADC_DATA_IN больше переписать по AGC_MAX_WR_EN значение MAX_DATA_REG[ADR_CLUSTER].

В принципе все довольно просто
Код
wire [7:0] MAX_REG_IN;
wire [7:0] MAX_DATA=MAX_DATA_REG[ADR_CLUSTER];

assign MAX_REG_IN=(ADC_DATA_IN>MAX_DATA) ? ADC_DATA_IN: MAX_DATA;

always@(posedge CLK)
if (AGC_MAX_WR_EN)
MAX_DATA_REG[ADR_CLUSTER]<=MAX_REG_IN;


А вот как сделать то же самое с generate используя "примитив". На сканирующую цепочку смотреть не нужно. D_FLIP обычный регистр с CLK_EN;

Код
genvar k;
wire  AGC_MAX_WR [0:32];
    
wire [7:0] MAX_REG_IN [0:32];

wire [7:0] MAX_DATA_REG [0:32];

wire [7:0] MAX_DATA=MAX_DATA_REG[ADR_CLUSTER];

assign AGC_MAX_WR[ADR_CLUSTER]=AGC_MAX_WR_EN;    
// формирую на каждый регистр свой enable????    
    

generate for(k=0;k<32;k=k+1)
    begin:FR_BLOCK    
    assign     MAX_REG_IN[k]=(ADC_DATA_IN>MAX_DATA) ? ADC_DATA_IN: MAX_DATA;    
    end
endgenerate    
// размножаю значение MAX_REG_IN, чтобы завести на все регистры одновременно

generate for(k=0;k<32;k=k+1) begin: max_reg_gen    
D_FLIP #(
    .N(8))
MAX_DATA_REG (.FREEZE(FREEZE),
    .SCAN_EN(SCAN_EN),
    .SCAN_IN(scan_chain[k]),
    .SCAN_OUT(scan_chain[k+1]),
    .nRESET(nRESET),
    .CLK(CLK),
    .CLK_EN(AGC_MAX_WR[k]),
    .D(MAX_REG_IN[k]),
    .Q(MAX_DATA_REG[k])
);    
end
endgenerate


Компилятор ругается и говорит, что MAX_DATA_REG[k] не вектор или массив. Почему??
Спасибо!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 18:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016