Toate răspunsurile trebuie justificate. În lipsa explicațiilor nu se acordă punctaj pe subiectul respectiv.
1. Descrieți 2 moduri de adresare folosite de calculatorul didactic.
2. Descrieți în Verilog, folosind primitive și fără a folosi operatorii Verilog, un modul care realizează următoarea funcție logică: f(a, b, c, d) = (a & !b) | (!c & d)
. a
, b
, c
, d
sunt intrări pe 1 bit.
3. Descrieți pe scurt execuția instrucțiunii SHL [BA+XA]
, de la citirea ei din memorie, până la trecerea la instrucțiunea următoare. Care sunt pașii urmați de unitatea de comandă, ce componente ale procesorului sunt implicate în prelucrarea ei și cum sunt folosite acestea?
4. Ce este blocul initial
și la ce este folosit?
5. Ce este modulul top-level și la ce folosește?
6. Ce reprezintă o atribuire blocantă? Dați un exemplu de folosire.
7. Codificati instructiunile:
MOV BB, RB DEC [BB+XA-2]
8. Corectați erorile de sintaxă din următorul fragment de cod Verilog, care descrie un divizor de ceas.
module clk_divider(output out, input clk); reg[7:0] counter; always @(posedge clk) ++counter assign out = counter(7); endmodule
9. Descrieți tipul de date wire
. Dați un exemplu de declarare a unei variabile de tip wire
pe n biți (n > 1, la alegere).
10. Ce valori vor avea registrele a
, b
și c
după o execuție a blocului always? Justificați.
reg [3:0] a = 4'b110; reg [3:0] b = 9; reg [3:0] c = 4'hb; always @(posedge clk) begin c <= b | b; b <= c & a; a <= a + 1; end