Extras din seminar
/* 1. Descrieți un modul numit minoritate. Are trei intrări - a, b, c - și o ieșire - y. Ieșirea are valoarea TRUE dacă cel puțin două intrări sunt FALSE. */
module minoritate (input a,b,c,output y);
always@(*)
begin
if((a==0 && b==0) || (a==0 && c==0) || (b==0 &&c==0))
begin
y=1;
end
else
begin
y=0;
end
end
endmodule
/* 2. Descrieți un modul numit voter. Are trei intrări - a, b, c - și o ieșire - y. Ieșirea are valoarea TRUE dacă cel puțin două intrări sunt TRUE. */
module voter ( input a,b,c, output y);
always@(*)
begin
if((a==1 && b==1) || (a==1 && c==1) || (b==1 &&c==1))
begin
y=1;
end
else
begin
y=0;
end
end
endmodule
/* 3. Descrieți un modul numit mux8_1. Are nouă intrări - d0 - d7, s_2:0 - și o ieșire - y. Ieșirea ia valoarea uneia dintre intrări, în funcție de biții s (multiplexor clasic 8-la-1). */
module mux8_1 (input d0, d1, d2, d3, d4, d5, d6, d7, input [2:0] s, output y);
always@(*)
begin
case(s)
3’b000: y=d0;
3’b001: y=d1;
3’b010: y=d2;
3’b011: y=d3;
3’b100: y=d4;
3’b101: y=d5;
3’b110: y=d6;
3’b111: y=d7;
Endcase
End
Endmodule
/* 4. Descrieți un modul numit mux16_1. Are două intrări - d_0:15, s_3:0 - și o ieșire - y. Ieșirea ia valoarea uneia dintre intrări, în funcție de biții s (multiplexor clasic 16-la-1). */
module mux16_1 (input d[0:15], input [3:0] s, output y);
always@(*)
begin
case(s)
4’b0000: y=d[0];
4’b0001: y=d[1];
4’b0010: y=d[2];
4’b0011: y=d[3];
4’b0100: y=d[4];
4’b0101: y=d[5];
4’b0110: y=d[6];
4’b0111: y=d[7];
4’b1000: y=d[8];
4’b1001: y=d[9];
4’b1010: y=d[10];
4’b1011: y=d[11];
4’b1100: y=d[12];
4’b1101: y=d[13];
4’b1110: y=d[14];
4’b1111: y=d[15];
Endcase
End
Endmodule
Preview document
Conținut arhivă zip
- Test1 probleme.docx