1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/* SPDX-License-Identifier: Apache-2.0 OR CERN-OHL-P-2.0 */
/*
* Copyright 2024 Tiny Tapeout Ltd.
* Copyright 2026 UBC ASIC contributors (Montreal project).
* All rights reserved.
*
* Authors: Tiny Tapeout contributors
* Chathil Rajamanthree <chathil.rajaman3@gmail.com>
*
* Tiny Tapeout top-level module and QSPI PMOD controller
*/
`default_nettype none
/*
* Tiny Tapeout top-level wrapper.
*
* IMPORTANT: The module definition MUST follow the Tiny Tapeout specification
* exactly. Do not modify the port names.
*/
/* verilog_lint: waive module-filename */
module tt_top_ubc_montreal (
/* verilog_lint: waive-start port-name-suffix */
/* Dedicated inputs. */
input wire [7:0] ui_in,
/* Dedicated outputs. */
output wire [7:0] uo_out,
/* I/O: input path. */
input wire [7:0] uio_in,
/* I/O: output path. */
output wire [7:0] uio_out,
/* I/O: active-high output enable. */
output wire [7:0] uio_oe,
/* Design enable signal. This will be 1 when the design is powered. */
input wire ena,
/* Clock. */
input wire clk,
/* Active-low reset. */
input wire rst_n
/* verilog_lint: waive-stop port-name-suffix */
);
/* Temporary output assignments. Unused pins must be assigned to 0. */
assign uo_out = ui_in + uio_in;
assign uio_out = '0;
assign uio_oe = '0;
/* Connect all unused inputs to prevent warnings. */
wire unused = &{ena, clk, rst_n, 1'b0};
rv32e_core_wrapper u_rv32e_core_wrapper ();
qspi_controller u_qspi_controller (
/* Clock. */
.clk(),
/* Active-low reset. */
.rst_n(),
/* I/O: input path. */
.uio_in(),
/* I/O: output path. */
.uio_out(),
/* I/O: active high output enable. */
.uio_oe()
);
endmodule : tt_top_ubc_montreal
|