Перейти к содержанию
    

case + for Verilog

Всем привет! подскажите пожалуйста как сокраить запись в Verilog(не так давно на нем пишу, сейчас решение ищу сам< но вдруг здесь быстрее ответят)

Есть такая запись

 
case (rx_mtyout2_d)//shrink invalid bytes
4'd0  : begin
	for(i=0;i<16;i=i+1) begin
		if(i==0)
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b01, rx_dataout2_d[i*8 +: 8]};
		else
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b11, rx_dataout2_d[i*8 +: 8]};																																		
		end		
	end
4'd1  : begin
	for(i=0;i<16;i=i+1) begin
		if(i<1)
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b00, 8'h00};
		else if(i==1)
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b10, rx_dataout2_d[i*8 +: 8]};
		else
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b11, rx_dataout2_d[i*8 +: 8]};
		end		
	end
4'd2  : begin
	for(i=0;i<16;i=i+1) begin
		if(i<2)
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b00, 8'h00};
		else if(i==2)
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b10, rx_dataout2_d[i*8 +: 8]};
		else
			fifo_data_10b[i*10+160*2 +: 10] <= {2'b11, rx_dataout2_d[i*8 +: 8]};
		end		
	end
////////////////////////////////////etc 
endcase

Тут есть зависимость результата от номера кейса - я вижу что-то типа

 									
case (rx_mtyout2_d)//shrink invalid bytes
for(k=0; k<N; k=k+1)
	 k  : begin
		for(i=0;i<16;i=i+1) begin
			if(i<k)
				fifo_data_10b[i*10+160*2 +: 10] <= {2'b00, 8'h00};
			else if(i==k)
				fifo_data_10b[i*10+160*2 +: 10] <= {2'b10, rx_dataout2_d[i*8 +: 8]};
			else
				fifo_data_10b[i*10+160*2 +: 10] <= {2'b11, rx_dataout2_d[i*8 +: 8]};
			end
					 end

Как это записать правильно?

 

Вроде нашел:

 									
for(k=0; k<N; k=k+1)begin
	 if(rx_mtyout2_d==k)begin
		for(i=0;i<16;i=i+1) begin
			if(i<k)
				fifo_data_10b[i*10+160*2 +: 10] <= {2'b00, 8'h00};
			else if(i==k)
				fifo_data_10b[i*10+160*2 +: 10] <= {2'b10, rx_dataout2_d[i*8 +: 8]};
			else
				fifo_data_10b[i*10+160*2 +: 10] <= {2'b11, rx_dataout2_d[i*8 +: 8]};
			end
					 end
			  end
  end

Осталось понять эквивалентно ли это тому что написано выше с точки зрения синтезатора

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...