New Hardware Git
This commit is contained in:
62
Logisim/Project_Car_Light/Car_Light.v
Normal file
62
Logisim/Project_Car_Light/Car_Light.v
Normal file
@@ -0,0 +1,62 @@
|
||||
`timescale 10ns/1ns
|
||||
module D_Touch(
|
||||
input D0,
|
||||
input clk,
|
||||
output reg Q0
|
||||
);
|
||||
always @(posedge clk) begin
|
||||
Q0 <= D0;
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
module Light_Time (
|
||||
input clk,
|
||||
input a,
|
||||
output q1,
|
||||
output q2,
|
||||
output q3
|
||||
);
|
||||
wire q1internal , q2internal , q3internal;
|
||||
wire t1 , t2 , t3;
|
||||
assign t1 = (!q1internal)&&(!q2internal)&&(!q3internal)&&a||(q1internal)&&(q2internal)&&a;
|
||||
assign t2 = (!q1internal)&&(!q2internal)&&(!q3internal)&&a||(q1internal)&&(q2internal)&&(q3internal)&&a;
|
||||
assign t3 = (!q1internal)&&(!q2internal)&&(!q3internal)&&a||(q1internal)&&(q2internal)&&(!q3internal)&&a;
|
||||
D_Touch dt1(.D0(t1) , .clk(clk) , .Q0(q1internal));
|
||||
D_Touch dt2(.D0(t2) , .clk(clk) , .Q0(q2internal));
|
||||
D_Touch dt3(.D0(t3) , .clk(clk) , .Q0(q3internal));
|
||||
|
||||
assign q1 = q1internal;
|
||||
assign q2 = q2internal;
|
||||
assign q3 = q3internal;
|
||||
|
||||
endmodule
|
||||
|
||||
module test;
|
||||
|
||||
reg clk , a;
|
||||
wire q1 , q2 , q3;
|
||||
|
||||
Light_Time uut (
|
||||
.clk(clk),
|
||||
.a(a),
|
||||
.q1(q1),
|
||||
.q2(q2),
|
||||
.q3(q3)
|
||||
);
|
||||
|
||||
always #2 clk = ~clk;
|
||||
|
||||
initial begin
|
||||
clk = 0;
|
||||
a = 0;
|
||||
$dumpfile("Light_wave.vcd");
|
||||
$dumpvars(0, test);
|
||||
|
||||
// 开始测试
|
||||
#10 a = 1;
|
||||
#100 a = 0;
|
||||
#120 $finish;
|
||||
end
|
||||
|
||||
endmodule
|
||||
Reference in New Issue
Block a user