Spaces:
Sleeping
Sleeping
Download problems/task8_dot_product/reference.v from Supreeth/verirl-env: direct link, hf CLI and curl.
- Browser
- Download file 1.03 kB
-
https://huggingface.co/spaces/Supreeth/verirl-env/resolve/main/problems/task8_dot_product/reference.v
- Command line
-
hf download hf://spaces/Supreeth/verirl-env/problems/task8_dot_product/reference.v
-
curl -L -o reference.v https://huggingface.co/spaces/Supreeth/verirl-env/resolve/main/problems/task8_dot_product/reference.v
1.03 kB
| // Reference implementation: 2-stage pipelined INT8 dot product (4 elements) | |
| module dot_product_4 ( | |
| input wire clk, | |
| input wire rst, | |
| input wire valid_in, | |
| input wire signed [7:0] a0, a1, a2, a3, | |
| input wire signed [7:0] b0, b1, b2, b3, | |
| output reg valid_out, | |
| output reg signed [17:0] result | |
| ); | |
| // Stage 1: four 8×8 → 16-bit products | |
| reg signed [15:0] p0, p1, p2, p3; | |
| reg s1_valid; | |
| always @(posedge clk) begin | |
| if (rst) begin | |
| p0 <= 0; p1 <= 0; p2 <= 0; p3 <= 0; | |
| s1_valid <= 1'b0; | |
| result <= 0; | |
| valid_out <= 1'b0; | |
| end else begin | |
| // Stage 1 | |
| p0 <= a0 * b0; | |
| p1 <= a1 * b1; | |
| p2 <= a2 * b2; | |
| p3 <= a3 * b3; | |
| s1_valid <= valid_in; | |
| // Stage 2 | |
| result <= p0 + p1 + p2 + p3; | |
| valid_out <= s1_valid; | |
| end | |
| end | |
| endmodule | |