study/HDLBits

[HDLBits] Basics (01)

whehdud2 2025. 6. 4. 14:49

Simple wire

module top_module( input in, output out );

	assign out = in;
	
endmodule

4 Wire

module top_module( 
    input a,b,c,
    output w,x,y,z );
	
    assign w = a;
    assign x = b;
    assign y = b;
    assign z = c;
    
endmodule

 

NOT gate

module top_module( input in, output out );

	assign out = ~in;
	
endmodule

AND gate

module top_module( 
    input a, 
    input b, 
    output out );
    
	assign out = a & b;
    
endmodule

NOR gate

 

module top_module( 
    input a, 
    input b, 
    output out );
    
    assign out = ~(a | b);
    
endmodule

 

XNOR gate

module top_module( 
    input a, 
    input b, 
    output out );
    
    assign out = ~(a ^ b);
    
endmodule

Declaring wires

module top_module(
    input a,
    input b,
    input c,
    input d,
    output out,
    output out_n   ); 
	
    wire a_b;
    wire c_d;
    wire com;
    
    assign a_b = a & b;
    assign c_d = c & d;
    assign com = a_b | c_d;
    assign out = com;
    assign out_n = ~com;
    
endmodule

7458 chip

module top_module ( 
    input p1a, p1b, p1c, p1d, p1e, p1f,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );

    wire a_b, c_b, c_d, f_e
    ;
    assign a_b = p2a & p2b;
    assign c_b = p1a & p1c & p1b;
    assign c_d = p2c & p2d;
    assign f_e = p1f & p1e & p1d;
    assign p2y = a_b | c_d;
    assign p1y = c_b | f_e;

endmodule
728x90