generated from TinyTapeout/tt05-verilog-demo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
info.yaml
105 lines (93 loc) · 5.23 KB
/
info.yaml
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
# Tiny Tapeout project information
project:
wokwi_id: 0 # If using wokwi, set this to your project's ID
# If using an HDL, set wokwi_id as 0 and uncomment and list your source files here.
# Source files must be in ./src and you must list each source file separately
source_files:
- ros_nand4.v
- ros_nand4_cap.v
- ros_einv_sub.v
- fmeasurment.v
- tt_um_gfg_development_tros.v
top_module: "tt_um_gfg_development_tros" # Put the name of your top module here, must start with "tt_um_". Make it unique by including your github username
# How many tiles your design occupies? A single tile is about 167x108 uM.
tiles: "1x1" # Valid values: 1x1, 1x2, 2x2, 3x2, 4x2 or 8x2
# Keep a track of the submission yaml
yaml_version: 4
# As everyone will have access to all designs, try to make it easy for someone new to your design to know what
# it does and how to operate it. This info will be automatically collected and used to make a datasheet for the chip.
#
# Here is a great example: https://github.com/davidsiaw/tt02-davidsiaw-stackcalc/blob/38c5647f83aad2aec675d566aa3d67b98f0aac81/info.yaml
documentation:
author: "Gerrit Grutzeck" # Your name
title: "TROS" # Project title
language: "Verilog" # other examples include Verilog, Amaranth, VHDL, etc
description: "Three different ring oscillator, with different temperature dependence" # Short description of what your project does
# Longer description of how the project works. You can use standard markdown format.
how_it_works: |
This design implements three different ring oscillators. The first one is a basic NAND4
based oscillator, with 67 and a frequency of around 30 MHz. The second one adds 8 additional
NAND gates to the outputs of the stages of the oscillator to increase the capacitve loading.
This oscillator uses 35 stages and has a frequency of around 20 MHz. The last one uses the
tri-state inverts with a sub-threshold tri-state enable. This last oscillator uses one NAND
gate for enabling/disabling the oscillator and 6 normal inverters and 18 sub-threshold
tristate-inverters. The normal inverters are used to increase the slope of the signal, to
ensure, that the following inverters are working. This oscillators has a frequency of around
23 MHz.
For measuring the frequencies each oscillator is driving a counter. This counters are
latched with the latch counter input. With the input transfer counter the currently
selected counter (counter select bits) is transfered via the serial data stream. The
transfer is driven by the clock of the design. As encoding a manchester encoding is used.
Furthermore, a divided version of the clock of each oscillator is outputted. The divisior
can be configured with the frequency selection bits. The divisors are:
- 0b00: 2
- 0b01: 8
- 0b10: 32
- 0b11: 128
# Instructions on how someone could test your project, include things like what buttons do what and how to set the clock if needed
how_to_test: |
Most simple approach is to measure the frequency of the output pins 5 to 7. With this it
is possible to check, that the oscillators are working.
Further test-steps are to programm the RP2040 with the MicroPython scripts in the firmware
folder.
The script main_frequency.py and plot_frequency.py can be used to measure the frequency with
the PIOs on the RP2040 and plot the frequency over time of the 3 oscillators. The plotting
script assumes, that ttyACM0 is the demoboard.
# A description of what the inputs do (e.g. red button, SPI CLK, SPI MOSI, etc).
inputs:
- latch counter
- counter reset
- transfer counter
- counter select bit 0
- counter select bit 1
- select latch counter (sync/async)
- frequency divider select bit 0
- frequency divider select bit 1
# A description of what the outputs do (e.g. status LED, SPI MISO, etc)
outputs:
- not used
- not used
- not used
- not used
- serial data stream
- divided clock of oscillator 0
- divided clock of oscillator 1
- divided clock of oscillator 2
# A description of what the bidirectional I/O pins do (e.g. I2C SDA, I2C SCL, etc)
bidirectional:
- not used
- not used
- not used
- not used
- not used
- not used
- not used
- not used
# The following fields are optional
tag: "oscillator, test" # comma separated list of tags: test, encryption, experiment, clock, animation, utility, industrial, pwm, fpga, alu, microprocessor, risc, riscv, sensor, signal generator, fft, filter, music, bcd, sound, serial, timer, random number generator, calculator, decoder, counter, puzzle, multiplier, game, oscillator,
external_hw: "" # Describe any external hardware needed
discord: "liggi.iggil" # Your discord handle, used for communication and automatically assigning tapeout role after a submission
doc_link: "" # URL to longer form documentation, eg the README.md in your repository
clock_hz: 10000000 # Clock frequency in Hz (if required)
picture: "" # relative path to a picture in your repository (must be 512kb or less)