Il codice del multiplexer è questo:
- Codice: Seleziona tutto
`timescale 1ns / 1ps
module mux(
input wire [2:0]in1,
input wire [2:0]in2,
input wire [2:0]in3,
input wire [2:0]in4,
input reg [1:0]sel,
output reg [2:0]out
);
initial
begin
out = 3'b000;
case (sel)
2'b00: out = in1;
2'b01: out = in2;
2'b10: out = in3;
2'b11: out = in4;
default: begin
out = 3'b000;
sel = 2'b00;
end
endcase
end
endmodule
Poi, per far partire la simulazione ho provato a scrivere il testbench:
- Codice: Seleziona tutto
`timescale 1ns / 1ps
module tbmux;
reg [2:0]IN1;
reg [2:0]IN2;
reg [2:0]IN3;
reg [2:0]IN4;
reg [1:0]SEL;
wire [2:0]OUT;
mux dut(IN1,IN2,IN3,IN4,SEL,OUT);
//mux dut(.in1(IN1),.in2(IN2),.in3(IN3),.in4(IN4),.sel(SEL),.out(OUT));
initial
begin
$monitor($time,,"IN1=%b IN2=%b IN3=%b IN4=%b SEL=%b OUT=%b",IN1,IN2,IN3,IN4,SEL,OUT);
IN1 = 3'b000;
IN2 = 3'b001;
IN3 = 3'b010;
IN4 = 3'b100;
#5 SEL = 2'b00;
#5 SEL = 2'b01;
#5 SEL = 2'b10;
#5 SEL = 2'b11;
#5 $stop;
end
endmodule
Però la simulazione non parte. Penso di aver fatto un errore da qualche parte, ma essendo abbastanza niubbo in materia, non riesco a trovarlo. Qualcuno mi può aiutare?
Grazie mille!

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)