逻辑门的Verilog实现与仿真

1,非门   ~

2,与门  &

3,或门  |

4,与非门  ~(x&y)

5,或非门  ~(x|y)

6,异或门  x^y  or  (~x&y)|(x&~y) 

7,同或门  x~^y

module luojiyunsuan(a,b,z);
input a;
input b;
output [6:0];
assign z[6] = ~a;
assign z[5] = a&b;
assign z[4] = a|b;
assign z[3] = ~(a&b);
assign z[2] = ~(a|b);
assign z[1] = a^b;
assign z[0] = a~^b;
endmodule

module diaoyongljys(sw,ld);
input [1:0] sw;
output [6:0] ld;
luojiyunsuan a(
.a(sw[0]),
.b(sw[1]),
.z(ld));
endmodule

仿真代码的书写

module simu_luoji;

	// Inputs
	reg [1:0] sw;

	// Outputs
	wire [6:0] ld;

	// Instantiate the Unit Under Test (UUT)
	diaoyongljys uut (
		.sw(sw), 
		.ld(ld)
	);

	initial begin
		// Initialize Inputs
		sw = 0;

		// Wait 100 ns for global reset to finish
		#100;
      sw[0]=0;
		sw[1]=0;
		#100;
      sw[0]=0;
		sw[1]=1;
		#100;
      sw[0]=1;
		sw[1]=1;
		#100;
      sw[0]=1;
		sw[1]=0;		
		// Add stimulus here

	end
      
endmodule

实现逻辑运算的Verilog代码。

你可能感兴趣的:(FPGA逻辑篇)