mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
 | 
						|
module example001(a, y);
 | 
						|
 | 
						|
input [15:0] a;
 | 
						|
output y;
 | 
						|
 | 
						|
wire gt = a > 12345;
 | 
						|
wire lt = a < 12345;
 | 
						|
assign y = !gt && !lt;
 | 
						|
 | 
						|
endmodule
 | 
						|
 | 
						|
// ------------------------------------
 | 
						|
 | 
						|
module example002(a, y);
 | 
						|
 | 
						|
input [3:0] a;
 | 
						|
output y;
 | 
						|
reg [1:0] t1, t2;
 | 
						|
 | 
						|
always @* begin
 | 
						|
	casex (a)
 | 
						|
		16'b1xxx:
 | 
						|
			t1 <= 1;
 | 
						|
		16'bx1xx:
 | 
						|
			t1 <= 2;
 | 
						|
		16'bxx1x:
 | 
						|
			t1 <= 3;
 | 
						|
		16'bxxx1:
 | 
						|
			t1 <= 4;
 | 
						|
		default:
 | 
						|
			t1 <= 0;
 | 
						|
	endcase
 | 
						|
	casex (a)
 | 
						|
		16'b1xxx:
 | 
						|
			t2 <= 1;
 | 
						|
		16'b01xx:
 | 
						|
			t2 <= 2;
 | 
						|
		16'b001x:
 | 
						|
			t2 <= 3;
 | 
						|
		16'b0001:
 | 
						|
			t2 <= 4;
 | 
						|
		default:
 | 
						|
			t2 <= 0;
 | 
						|
	endcase
 | 
						|
end
 | 
						|
 | 
						|
assign y = t1 != t2;
 | 
						|
 | 
						|
endmodule
 | 
						|
 | 
						|
// ------------------------------------
 | 
						|
 | 
						|
module example003(a_shl, a_shr, a_sshl, a_sshr, sh, y_shl, y_shr, y_sshl, y_sshr);
 | 
						|
 | 
						|
input [7:0] a_shl, a_shr;
 | 
						|
input signed [7:0] a_sshl, a_sshr;
 | 
						|
input [3:0] sh;
 | 
						|
 | 
						|
output [7:0] y_shl = a_shl << sh, y_shr = a_shr >> sh;
 | 
						|
output signed [7:0] y_sshl = a_sshl <<< sh, y_sshr = a_sshr >>> sh;
 | 
						|
 | 
						|
endmodule
 | 
						|
 | 
						|
// ------------------------------------
 | 
						|
 | 
						|
module example004(clk, rst, y);
 | 
						|
 | 
						|
input clk, rst;
 | 
						|
output y;
 | 
						|
 | 
						|
reg [3:0] counter;
 | 
						|
 | 
						|
always @(posedge clk)
 | 
						|
	case (1'b1)
 | 
						|
		rst, counter == 9:
 | 
						|
			counter <= 0;
 | 
						|
		default:
 | 
						|
			counter <= counter+1;
 | 
						|
	endcase
 | 
						|
 | 
						|
assign y = counter == 12;
 | 
						|
 | 
						|
endmodule
 | 
						|
 |