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

Как эту схему на verilog описать?

?

2.jpg

 

вот так описал. Гляньте пжл правильно ли?

module decode (input [14:12] D,input [7:0] S, output reg [7:0] R);

always @* R = &D ? S : {5'h0,D};

endmodule

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


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

Я новичек в фпга.

Я бы сделал почти то же самое:
 

module Decode (input wire [7 : 0] S, input wire [14 : 12] D, output wire [7 : 0] R);
	assign R = &D ? S : {5'b0, D};   
endmodule

 

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


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

1 hour ago, RadiatoR said:

Я новичек в фпга.

Аналогично. :drinks:

Ох уж и странный этот верилох, хош так пиши хош эдак!

Просто прелесть!

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


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

Кто она, схема? Понятия не имею как это сделать.

А в RTL вьювере можно посмотреть во что её компилятор превращает.

По два AND и одному OR для каждого выходного бита.

Писать такое на верилоге как-то не комильфо.

Вот и поинтересовался у знатоков как лаконичнее записать.

Кстати, в RTL код на верилоге выглядит по другому, а работает и то и то одинаково.

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


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

2 minutes ago, zombi said:

Кто она, схема? Понятия не имею как это сделать.

Поищите, в Квартусе точно есть такая функция.

Эту вашу схему надо сделать как блок и уже блок конвертируется в HDL.

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


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

Агааа...

Сделать эту схему отдельным файлом .bdf и уже его конвертировать в верилог.

Понял. Спасибо.

 

Вот, конвертировал :biggrin:

 

module Block1(
    D,
    S,
    R
);


input wire    [14:12] D;
input wire    [7:0] S;
output wire    [7:0] R;

wire    0;
wire    SYNTHESIZED_WIRE_0;

wire    [7:0] GDFX_TEMP_SIGNAL_0;


assign    GDFX_TEMP_SIGNAL_0 = {0,0,0,0,0,D[14:12]};

assign    SYNTHESIZED_WIRE_0 = D[14] & D[13] & D[12];


lpm_mux0    b2v_inst1(
    .sel(SYNTHESIZED_WIRE_0),
    .data0x(GDFX_TEMP_SIGNAL_0),
    .data1x(S),
    .result(R));


endmodule
 

:wacko:

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


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

On 7/24/2020 at 9:50 PM, zombi said:

always @* R = &D ? S : {5'h0,D};

Без always, простым ? описывается мультиплексор:

r = (& d [14:12]) ? s : {5'b0, d[14:12]};

где 

wire [7:0] s, r; // или reg [7:0] s;

 

Если описывать каждый мультиплексор в отдельном модуле, так можно и запутаться - что же в конце концов делает всё устройство :)

Изменено пользователем Yuri124

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


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

1 hour ago, RadiatoR said:

А в чем смысл в данном случае указывать диапазон?

r = (& d [14:12]) ? s : 8'h07;

 

Нету смысла. Так же как и в исходной схеме. 

Upd!

 

r = (& d [14:12]) ? d[14:12]  : s;

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


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

9 hours ago, Sergey_Bekrenyov said:

Можно еще короче. 

r = (& d [14:12]) ? s : 8'h7;

Э нет. Так не пойдёт. Если не все разряды D в единице, то в младших разрядах R должно быть D, а не 7 !

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


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

8 minutes ago, zombi said:

А еще короче?

Можно записать всё в один рядок. Тогда присутствующая нечитабельность взлетит на невероятные высоты!

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


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

12 minutes ago, zombi said:

Э нет. Так не пойдёт. Если не все разряды D в единице, то в младших разрядах R должно быть D, а не 7 !

В этом случае AND не сработает и на выходе будет S

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


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

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

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

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

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

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

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

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

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

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