Answer from cs61c-ew (Joo-Rak Son 16103505) for Question 1 In C, the association of the arguments at the caller with the callee is determined by the order. For example, if a function is defined "int func(int x, int y)" and invoked "func(hi, bye)", then "hi" is associated with "x" and "bye" with "y". This is also allowed in Verilog, but you can also use the "dot notation", where the caller has to follow up with the parameter name as specified in the module and the name of the local variable in parenthesis. Order does not matter, so in the example above, the following would be acceptable: "func(.y(hi), .x(bye)".