mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
| 
 | |
| module blocking_cond (in, out);
 | |
| 
 | |
| input in;
 | |
| output reg out;
 | |
| reg tmp;
 | |
| 
 | |
| always @* begin
 | |
| 	tmp = 1;
 | |
| 	out = 1'b0;
 | |
| 	case (1'b1)
 | |
| 		tmp: out = in;
 | |
| 	endcase
 | |
| 	tmp = 0;
 | |
| end
 | |
| 
 | |
| endmodule
 | |
| 
 | |
| // -------------------------------------------------------------
 | |
| 
 | |
| module uut(clk, arst, a, b, c, d, e, f,  out1);
 | |
| 
 | |
| input clk, arst, a, b, c, d, e, f;
 | |
| output reg [3:0] out1;
 | |
| 
 | |
| always @(posedge clk, posedge arst) begin
 | |
| 	if (arst)
 | |
| 		out1 = 0;
 | |
| 	else begin
 | |
| 		if (a) begin
 | |
| 			case ({b, c})
 | |
| 				2'b00:
 | |
| 					out1 = out1 + 9;
 | |
| 				2'b01, 2'b10:
 | |
| 					out1 = out1 + 13;
 | |
| 			endcase
 | |
| 			if (d) begin
 | |
| 				out1 = out1 + 2;
 | |
| 				out1 = out1 + 1;
 | |
| 			end
 | |
| 			case ({e, f})
 | |
| 				2'b11:
 | |
| 					out1 = out1 + 8;
 | |
| 				2'b00:
 | |
| 					;
 | |
| 				default:
 | |
| 					out1 = out1 + 10;
 | |
| 			endcase
 | |
| 			out1 = out1 ^ 7;
 | |
| 		end
 | |
| 		out1 = out1 + 14;
 | |
| 	end
 | |
| end
 | |
| 
 | |
| endmodule
 | |
| 
 | |
| // -------------------------------------------------------------
 | |
| 
 | |
| // extracted from ../asicworld/code_hdl_models_uart.v
 | |
| // (triggered a bug in the proc_mux pass)
 | |
| module uart (reset, txclk, ld_tx_data, tx_empty, tx_cnt);
 | |
| 
 | |
| input reset;
 | |
| input txclk;
 | |
| input ld_tx_data;
 | |
| 
 | |
| output reg tx_empty;
 | |
| output reg [3:0] tx_cnt;
 | |
| 
 | |
| always @ (posedge txclk)
 | |
| if (reset) begin
 | |
|   tx_empty      <= 1;
 | |
|   tx_cnt        <= 0;
 | |
| end else begin
 | |
|    if (ld_tx_data) begin
 | |
|      tx_empty <= 0;
 | |
|    end
 | |
|    if (!tx_empty) begin
 | |
|      tx_cnt <= tx_cnt + 1;
 | |
|    end
 | |
| end
 | |
| 
 | |
| endmodule
 | |
| 
 |