Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9e4969c
Added test for ready signal
boli-del Feb 2, 2026
1893910
Create databus_ctrl.v
1RyanChen1 Feb 2, 2026
a523df8
github ide is not fun
1RyanChen1 Feb 2, 2026
7c01ece
wrote new test for data transmission
boli-del Feb 2, 2026
9b09f73
github ide is not fun this can be 1 cycle delayed
1RyanChen1 Feb 2, 2026
e7f70dc
github ide is not fun this can be 1 cycle delayed
1RyanChen1 Feb 2, 2026
8925455
hopfully works IDK
1RyanChen1 Feb 4, 2026
0ded741
Created data bus module interface Verilog file
Feb 4, 2026
e75ad5a
no it doesnt work yet
1RyanChen1 Feb 4, 2026
4b07f89
added ownership non_participant_test
boli-del Feb 4, 2026
2613089
tried adding ownership transfer test
boli-del Feb 4, 2026
ac42548
tried a first version of owner_release test
boli-del Feb 4, 2026
0bf967f
data_bus_module_interface v1
Feb 4, 2026
e7afbe4
Merge branch 'data-bus-w26' of https://github.com/UW-ASIC/Interconnec…
Feb 4, 2026
874f853
data_bus_module_interface v2
Feb 5, 2026
cacdda5
data_bus_module_interface v2 fixed typo
Feb 5, 2026
c665ba3
Added small functions and modified info.yaml
ayoungeun Feb 11, 2026
b96c0cd
Merge branch 'data-bus-w26' of https://github.com/UW-ASIC/Interconnec…
ayoungeun Feb 11, 2026
8be5845
added fake control unit prayz it works
boli-del Feb 12, 2026
e0ec051
updated fake/simulated control module with custom set_ready functions
boli-del Feb 12, 2026
507d938
HOPE IT WORKS
1RyanChen1 Feb 28, 2026
c94bdc2
Fixed typos in test.py
ayoungeun Mar 25, 2026
b865810
modified set decode based on id function slightly, changed signal typ…
ayoungeun Mar 25, 2026
2cc2c74
Fixed typo and backward assignments
ayoungeun Mar 25, 2026
0d3ecb7
backward assignment fixed
ayoungeun Mar 25, 2026
c044e16
maybe works
1RyanChen1 Apr 25, 2026
b1d2628
add ready read grant to src
1RyanChen1 Apr 25, 2026
f37b54e
Update project.v
1RyanChen1 Apr 25, 2026
cddbcf5
updated tt top
1RyanChen1 Apr 25, 2026
3cbe8dc
tb
1RyanChen1 Apr 25, 2026
635d6b5
Update info.yaml
1RyanChen1 Apr 25, 2026
8d0c5de
Update Makefile
1RyanChen1 Apr 25, 2026
d997029
Update info.md
1RyanChen1 Apr 25, 2026
acd4666
typo fixed
1RyanChen1 Apr 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ You can also include images in this folder and reference them in the markdown. E

## How it works

Explain how your project works
it does not work

## How to test

Explain how to use your project
by inspection

## External hardware

List external hardware used in your project (e.g. PMOD, LED display, etc), if any
ATP
58 changes: 32 additions & 26 deletions info.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Tiny Tapeout project information
project:
title: "" # Project title
author: "" # Your name
discord: "" # Your discord username, for communication and automatically assigning you a Tapeout role (optional)
description: "" # One line description of what your project does
title: "Interconnect Data Bus" # Project title
author: "1" # Your name
discord: "2" # Your discord username, for communication and automatically assigning you a Tapeout role (optional)
description: "Trasnfer data between modules" # One line description of what your project does
language: "Verilog" # other examples include SystemVerilog, Amaranth, VHDL, etc
clock_hz: 0 # Clock frequency in Hz (or 0 if not applicable)

Expand All @@ -18,36 +18,42 @@ project:
# Don't forget to also update `PROJECT_SOURCES` in test/Makefile.
source_files:
- "project.v"
- "data_bus_ctrl.v"
- "data_bus_module_interface.v"
- "ack_bus_arbiter.v"
- "ack_bus_module_interface.v"
- "global_arbiter.v"
- "interconnect.v"

# The pinout of your project. Leave unused pins blank. DO NOT delete or add any pins.
pinout:
# Inputs
ui[0]: ""
ui[1]: ""
ui[2]: ""
ui[3]: ""
ui[4]: ""
ui[5]: ""
ui[6]: ""
ui[7]: ""
ui[0]: "ui_in0" # corresponds to ui_in[0] in project.v
ui[1]: "ui_in1" # ui_in[1]
ui[2]: "ui_in2" # ui_in[2]
ui[3]: "ui_in3" # ui_in[3]
ui[4]: "ui_in4" # ui_in[4]
ui[5]: "ui_in5" # ui_in[5]
ui[6]: "ui_in6" # ui_in[6]
ui[7]: "ui_in7" # ui_in[7]

# Outputs
uo[0]: ""
uo[1]: ""
uo[2]: ""
uo[3]: ""
uo[4]: ""
uo[5]: ""
uo[6]: ""
uo[7]: ""
uo[0]: "uo_out0" # corresponds to uo_out[0]
uo[1]: "uo_out1"
uo[2]: "uo_out2"
uo[3]: "uo_out3"
uo[4]: "uo_out4"
uo[5]: "uo_out5"
uo[6]: "uo_out6"
uo[7]: "uo_out7"

# Bidirectional pins
uio[0]: ""
uio[1]: ""
uio[2]: ""
uio[3]: ""
uio[4]: ""
uio[5]: ""
uio[0]: "" # uio_out[0]
uio[1]: "" # uio_out[1]
uio[2]: "" # uio_out[2]
uio[3]: "" # uio_out[3]
uio[4]: "" # uio_out[4]
uio[5]: "" # uio_out[5]
uio[6]: ""
uio[7]: ""

Expand Down
8 changes: 4 additions & 4 deletions src/ack_bus_arbiter.v
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,28 @@ always @(*) begin
ack_valid_n = 1'b1;
winner_source_id = 2'b11; //CTRL has default ownship of the bus

if (ack_ready_to_ctrl == 1'b1) begin
if (ack_valid_from_ctrl == 1'b1) begin
//CTRL module is asserting ack
{ack_ready_to_ctrl, ack_ready_to_aes, ack_ready_to_sha, ack_ready_to_mem} = 4'b1000;
ack_valid_n = 1'b0;
winner_source_id = 2'b11;
end

else if (ack_ready_to_aes == 1'b1) begin
else if (ack_valid_from_aes == 1'b1) begin
//AES module is asserting ack
{ack_ready_to_ctrl, ack_ready_to_aes, ack_ready_to_sha, ack_ready_to_mem} = 4'b0100;
ack_valid_n = 1'b0;
winner_source_id = 2'b10;
end

else if (ack_ready_to_sha == 1'b1) begin
else if (ack_valid_from_sha == 1'b1) begin
//SHA module is asserting ack
{ack_ready_to_ctrl, ack_ready_to_aes, ack_ready_to_sha, ack_ready_to_mem} = 4'b0010;
ack_valid_n = 1'b0;
winner_source_id = 2'b01;
end

else if (ack_ready_to_mem == 1'b1) begin
else if (ack_valid_from_mem == 1'b1) begin
//MEM module is asserting ack
{ack_ready_to_ctrl, ack_ready_to_aes, ack_ready_to_sha, ack_ready_to_mem} = 4'b0001;
ack_valid_n = 1'b0;
Expand Down
12 changes: 6 additions & 6 deletions src/ack_bus_module_interface.v
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
module ack_bus_module_interface (
input wire ACK_READY,
output wire ACK_READY_TO_MODULE,
input wire MODULE_SIDE_ACK_VAILD,
input wire MODULE_SIDE_ACK_VALID,
output wire ACK_VALID,
input wire [1:0] MODULE_SIDE_MODULE_SOURCE_ID,
output wire [1:0] MODULE_SOURCE_ID
);

//READY
//MODULE_SIDE_ACK_VALID->ACK_VAILD
//MODULE_SIDE_ACK_VALID->ACK_VALID

assign ACK_READY=ACK_READY_TO_MODULE;
assign ACK_VAILD=MODULE_SIDE_ACK_VAILD;
assign MODULE_SOURCE_ID=MODULE_SIDE_MODULE_SOURCE_ID;
assign ACK_READY_TO_MODULE = ACK_READY;
assign ACK_VALID = MODULE_SIDE_ACK_VALID;
assign MODULE_SOURCE_ID = MODULE_SIDE_MODULE_SOURCE_ID;

//This is an example of what the interfacing should look like, realistically the central ack_bus module will take care of all the interfacing
//We can refer back to this in the future
Expand All @@ -30,4 +30,4 @@ How to use:
ACK Bus:

The Ack bus receive the signals and
*/
*/
Loading
Loading