| 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 | |