Основные понятия цифровой логики
Дополнительные материалы для объединенного семинара MIPSfpga и Connected MCU от Imagination Technologies
Октябрь-Ноябрь 2016
Контрольная работа 2.5 - Комбинационные, последовательные и конвейерные реализации
с функций возведения в пятую степень
Имя ___________________________________________________________________
Ниже приведен код содержащий три модуля, реализующих одну и ту же функциональность, вычисляя пятую степень
из заданного числа. Проанализируйте код и ответьте на следующие вопросы:
module pow_5_implementation_1
(
input [17:0] n,
output [17:0] n_pow_5
);
assign n_pow_5 = n * n * n * n * n;
endmodule
//--------------------------------------------------------------------
module pow_5_implementation_2
(
input clock,
input reset_n,
input run,
input [17:0] n,
output ready,
output [17:0] n_pow_5
);
reg [4:0] shift;
always @(posedge clock or negedge reset_n)
if (! reset_n)
shift <= 0;
else if (run)
shift <= 5'b10000;
else
shift <= shift >> 1;
assign ready = shift [0];
reg [17:0] r_n, mul;
always @(posedge clock)
if (run)
begin
r_n <= n;
mul <= n;
end
else
begin
mul <= mul * r_n;
end
assign n_pow_5 = mul;
endmodule
//--------------------------------------------------------------------
module pow_5_implementation_3
(
input clock,
input [17:0] n,
output reg [17:0] n_pow_5
);
reg [17:0] n_1, n_2, n_3;
reg [17:0] n_pow_2, n_pow_3, n_pow_4;
always @(posedge clock)
begin
n_1 <= n;
n_2 <= n_1;
n_3 <= n_2;
n_pow_2 <= n * n;
n_pow_3 <= n_pow_2 * n_1;
n_pow_4 <= n_pow_3 * n_2;
n_pow_5 <= n_pow_4 * n_3;
end
endmodule
1. Какая реализация является чисто комбинационной?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
d) pow_5_implementation_1 and pow_5_implementation_2
e) pow_5_implementation_1 and pow_5_implementation_3
f) pow_5_implementation_2 and pow_5_implementation_3
g) все
h) ни одна из них
2. Какая реализация последовательна?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
d) pow_5_implementation_1 and pow_5_implementation_2
e) pow_5_implementation_1 and pow_5_implementation_3
f) pow_5_implementation_2 and pow_5_implementation_3
g) все
h) ни одна из них
3. Какая реализация конвейерная?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
d) pow_5_implementation_1 and pow_5_implementation_2
e) pow_5_implementation_1 and pow_5_implementation_3
f) pow_5_implementation_2 and pow_5_implementation_3
g) все
h) ни одна из них
4. Определите реализацию, которой соответствует следующей схеме:
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
d) pow_5_implementation_1 and pow_5_implementation_2
e) pow_5_implementation_1 and pow_5_implementation_3
f) pow_5_implementation_2 and pow_5_implementation_3
g) все
h) ни одна из них
5. Определите реализацию, которой соответствует следующей схеме:
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
d) pow_5_implementation_1 and pow_5_implementation_2
e) pow_5_implementation_1 and pow_5_implementation_3
f) pow_5_implementation_2 and pow_5_implementation_3
g) все
h) ни одна из них
6. Определите реализацию, которой соответствует следующей схеме:
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
d) pow_5_implementation_1 and pow_5_implementation_2
e) pow_5_implementation_1 and pow_5_implementation_3
f) pow_5_implementation_2 and pow_5_implementation_3
g) все
h) ни одна из них
7. Какая реализация, обеспечит максимальную частоту
(Предполагая, что выходы комбинационной реализации соеденены
с синхронизированним регистром)?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
8. Какая реализация, скорее всего, будет использовать наименьшее количество вентилей?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
9. Какая реализация может иметь наивысшую пропускную способность
(количество вычисленыз значений pow_5(n) за секунду)?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
10. Какая реализация будет иметь наименьшую задержку в тактовых циклах
(Предполагая, что выходы комбинационной реализации соеденены
с синхронизированним регистром)?
a) pow_5_implementation_1
b) pow_5_implementation_2
c) pow_5_implementation_3
11. В тестовом коде были реализованы все три реализации pow_5.
module testbench;
reg clock;
reg reset_n;
reg run;
reg [17:0] n;
wire ready;
wire [17:0] n_pow_5_implementation_1;
wire [17:0] n_pow_5_implementation_2;
wire [17:0] n_pow_5_implementation_3;
initial
begin
clock = 1;
forever # 50 clock = ! clock;
end
initial
begin
repeat (2) @(posedge clock);
reset_n <= 0;
repeat (2) @(posedge clock);
reset_n <= 1;
end
pow_5_implementation_1 pow_5_implementation_1
(n, n_pow_5_implementation_1);
pow_5_implementation_2 pow_5_implementation_2
(clock, reset_n, run, n, ready, n_pow_5_implementation_2);
pow_5_implementation_3 pow_5_implementation_3
(clock, n, n_pow_5_implementation_3);
integer i;
initial
begin
#0
$dumpvars;
$monitor ("clock %b reset_n %b n %d comb %d seq %d run %b ready %b pipe %d",
clock,
reset_n,
n,
n_pow_5_implementation_1,
n_pow_5_implementation_2,
run,
ready,
n_pow_5_implementation_3);
@(posedge reset_n);
@(posedge clock);
for (i = 0; i < 50; i = i + 1)
begin
n <= i & 7;
run <= (i == 0 || ready);
@(posedge clock);
end
$finish;
end
endmodule
Инженер смоделировал тестовый код и получил следующий сигнал.
Однако он забыл, что он добавил последние три сигнала к временной диаграмме.
Можете ли вы определить, какой сигнал является результатом комбинационной реализации,
Последовательной реализации без конвейера и последовательной конвейерной реализации?
a)В порядке (от верхнего n_pow_5... до нижнего n_pow_5...):
Комбинационная, последовательная реализация без конвейера, конвейерная
b) комбинационная, конвейерная, последовательная неконвейерная реализация
c) конвейерная, комбинационная, последовательная реализация без конвейера
d) конвейерная, последовательная неконвейерная реализация, комбинационная
e) последовательная не конвейерная реализация, комбинационная, конвейерная
f) последовательная не конвейерная реализация, конвейерная, комбинационная
Контрольная работа составлена Юрием Панчулом