| `default_nettype none |
| |
| module Device( |
| input wire [7:0] a, b, |
| output wire [7:0] result |
| ); |
| |
| wire [7:0] result1, result2; |
| |
| OrParts helper1(.data({a, b}), .result(result1)); |
| |
| wire [15:0] bothInputs; |
| assign bothInputs = {a, b}; |
| OrParts helper2(.data(bothInputs), .result(result2)); |
| |
| // Expect both result1 and result2 to be equal so... |
| assign result = result1 & result2; |
| |
| endmodule |
| |
| module OrParts( |
| input wire [15:0] data, |
| output reg [7:0] result |
| ); |
| |
| // Update the module input definition since it is assigned in an always block |
| always @* begin |
| result = data[15:8] | data[7:0]; |
| end |
| |
| endmodule |