logo

Crowdly

Browser

Add to Chrome

Основи проектування програмно-апаратних засобів

Looking for Основи проектування програмно-апаратних засобів test answers and solutions? Browse our comprehensive collection of verified answers for Основи проектування програмно-апаратних засобів at vns.lpnu.ua.

Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!

Є наступний модуль оперативної пам'яті:

module ram_sync_read #(parameter ADDR_WIDTH = 3, DATA_WIDTH = 8) (

    input clk,

    input we,

    input [ADDR_WIDTH-1:0] addr,

    input [DATA_WIDTH-1:0] data_in,

    output reg [DATA_WIDTH-1:0] data_out

);

    reg [DATA_WIDTH-1:0] mem [0:(1<<ADDR_WIDTH)-1];

    always @(posedge clk) begin

        if (we) mem[addr] <= data_in;

        data_out <= mem[addr];

    end

endmodule

Завдання:

 

Написати тестбенч-модуль, що виконає наступні дії:

  • Записати в пам’ять:
  • addr = 3, data_in = номер студента в журналі * 81-му такті),
  • addr = 5, data_in = місяць народження студента * 102-му такті).

 

Визначити data_out в 3-му такті, якщо addr = 5.

Пояснити чому data_out може бути неочікуваним в 1-му такті?

View this question
Задано модуль:

module counter #(parameter WIDTH = 5) (

input clk,

input reset,

input enable,

output reg [WIDTH-1:0] count

);

always @(posedge clk or posedge reset) begin

if (reset) count <= 0;

else if (enable) count <= count + 1;

end

endmodule

 

Умова:

Сигнал enable активується в тактах 2,4,6,8.

Визначити:

Стан count після 10 тактів.

Записати відповідь у бітовому форматі (c3c2c1c0).

Невизначений стан записувати як 'x'.

View this question

Чому дорівнює reg [2:0] c після виконання c <= a & b, якщо a = 4'b1010, b = 4'b1100.

0%
100%
0%
0%
View this question

Задано модуль:

module sequence_detector (

input clk,

input reset,

input bit_in,

output reg sequence_found

);

reg [3:0] state;

always @(posedge clk or posedge reset) begin

if (reset) state <= 4'b0000;

else state <= {state[2:0], bit_in};

end

assign sequence_found = (state == 4'b0011);

endmodule

 

Умова:

На вхід bit_in подається послідовність бітів: 0, 1, 0, 0, 1, 1, 0, 0, 1, 1.

Визначити:

Номери тактів (через кому), при яких sequence_found == 1

 

View this question

Чому дорівнює reg [2:0] c після виконання c <= a ^ b, якщо a = 4'b0110, b = 4'b0011.

0%
0%
0%
100%
View this question

Чому дорівнює reg [2:0] c після виконання c <= (a == b) ? 1'b1 : 1'b0, якщо a = 3'd5, b = 3'd2.

0%
0%
0%
100%
View this question

Є наступний Verilog-модуль:

module shifter

#(

parameter WIDTH = 9

)(

input [$clog2(WIDTH)-1:0] a,

input [$clog2(WIDTH)-1:0] b,

output reg [WIDTH-1:0] c,

input clk

);

always @(сlk) begin

assign c <= a << b;

end

endmodule

Нехай:

  • на вхід a подається число, що відповідає

    місяцю народження студента;
  • на вхід b подається число, що відповідає

    першому числу номера студента в журналі + 5

Визначити:

Стан виходу c після 3 циклів осцилятора.

Записати відповідь у бітовому форматі (c3c2c1c0).

Невизначений стан записувати як 'x'.

View this question

Чому відповідає затримка #5 за часових рамок `timescale 1ns/1ps?

0%
0%
0%
100%
View this question

Позначити період осцилятора, заданого наступним виразом:

initial begin

clk = 0;

forever #2 clk = ~clk;

end

0%
50%
0%
50%
View this question

Want instant access to all verified answers on vns.lpnu.ua?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!

Browser

Add to Chrome