Skip to content

Commit 199f7c5

Browse files
authored
Merge branch 'main' into thermal-power-spec-updated-api-endpoint
2 parents 3221d15 + 302c18b commit 199f7c5

File tree

9 files changed

+81
-20
lines changed

9 files changed

+81
-20
lines changed

backend/submodule/peripherals.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,15 @@ class GpioStandard(RsEnum):
7070
SSTL_3_3V_Class_I = 10, "SSTL 3.3V Class-I"
7171
SSTL_3_3V_Class_II = 11, "SSTL 3.3V Class-II"
7272

73+
#class N22_RISC_V_Clock(RsEnum):
74+
# PLL_233MHz = 0, "PLL (233 MHz)"
75+
# BOOT_Clock_40MHz = 1, "BOOT CLK (40 MHz)"
76+
# RC_OSC_50MHz = 2, "RC OSC (50 MHz)"
77+
7378
class N22_RISC_V_Clock(RsEnum):
74-
PLL_233MHz = 0, "PLL (233 MHz)"
75-
BOOT_Clock_40MHz = 1, "BOOT CLK (40 MHz)"
76-
RC_OSC_50MHz = 2, "RC OSC (50 MHz)"
79+
PLL_233MHz = 0, "PLL"
80+
BOOT_Clock_40MHz = 1, "BOOT CLK"
81+
RC_OSC_50MHz = 2, "RC OSC"
7782

7883
class Port_Activity(RsEnum):
7984
IDLE = 0, "Idle"

docs/source/user_guide/FPGA_index.rst

Lines changed: 67 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
FPGA Input
33
=============
44

5+
This section will document FPGA input for Rapid Power Estimator.
56

67
To begin inputting FPGA information, the user must have an RTL design that they would like to run on an FPGA platform. For users who have used other FPGA vendors' EDA tools, they can directly enter the FPGA input using their estimated FPGA utilization.
78

@@ -14,24 +15,42 @@ The clocking section is located on the top left of the FPGA input section.
1415

1516
.. image:: figures/FPGA-figures-clocking-clocking_selected.JPG
1617

17-
Selecting the clocking section will display an empty table, click the "Add" button above the table to fill out clock information.
18+
Selecting the clocking section will display an empty table at the botton of the screen, click the "+Add" button above the table to fill out clock information.
1819

1920
.. image:: figures/FPGA-figures-clocking-input_clock_info.JPG
2021

21-
Select the clock source using the source dropdown, then provide a description (optional) and name for the clock. Enter the clock frequency and lastly it's state. Repeat the following steps for each clock used in the RTL design.
22+
1. Select the clock source using the source dropdown menu
23+
2. Provide a description *(optional)*
24+
3. Enter the Port/Signal name of the clock, *Note: Clock info will be required by all RPE sections, naming should be done clearly to be able to select the correct clocks.*
25+
4. Enter the clock frequency
26+
#. For **Boot Clock** & **RC Oscillator** sources refer to your device's datasheet and enter frequencies accordingly.
27+
5. Select the Clock State - default is **active**
28+
#. Active for regular clock signals
29+
#. Gated for unused not actively toggling or gated off signals
2230

23-
FLE - Functional Logic Element
31+
Repeat the steps above for each clock used in the RTL design.
32+
33+
FLE - Fabric Logic Element
2434
###############################
2535

2636
The FLE section is located on the top right of the FPGA input section.
2737

2838
.. image:: figures/FPGA-figures-FLE-FLE_selected.JPG
2939

30-
Selecting the FLE section displays an empty table, click the "Add" button above the table to fill out the FLE info.
40+
Selecting the FLE section displays an empty table at the botton of the screen, click the "+Add" button above the table to fill out the FLE info.
3141

3242
.. image:: figures/FPGA-figures-FLE-input_FLE_info.JPG
3343

34-
Enter the no. of LUTs & flip-flops, then select the main clock from the clock dropdown. Lastly enter toggle rate, glitch factor and clock enable rate.
44+
1. Enter the name of your RTL module from your project's hierarchial view. *Note: You can leave this blank if you are providing FLE info for the entire design at once.*
45+
2. Enter the no. of LUTs
46+
3. Enter the no. of flip-flops
47+
4. Click on the clock dropdown, select the main clock responsible for running the design.
48+
5. Enter toggle rate - Industry standard default is **12.5%**
49+
6. Select glitch factor - default is **typical**
50+
#. Typical - Default option, for standard designs.
51+
#. High - For designs with high switching activity or complex logic.
52+
#. Very High - For high performance designs with high-frequency logic or heavy use of pipelining.
53+
7. Enter clock enable rate - Inudustry standard default is **50.0%**
3554

3655
BRAM - Block Randon Access Memory
3756
##################################
@@ -46,9 +65,15 @@ Selecting the BRAM section displays an empty table, click the "Add" button above
4665

4766
.. image:: figures/FPGA-figures-BRAM-input_BRAM_ports_info.JPG
4867

49-
Select the type of BRAM used on the RTL design, then the no. of that type of BRAM used.
50-
51-
Next fill out the read & write ports info. For each, select the clock, enter port width and senter write enable, read enable as well as toggle rates.
68+
1. Provide a name to label the BRAM function within the hierarchy (optional)
69+
2. Select the type of BRAM used in the RTL design
70+
3. Enter the no. of this type of BRAM used in the design
71+
4. Enter Port A-White & Port B-Read info based on the type of BRAM selected
72+
#. Clock - Select the clock which will be used to drive the BRAM Port
73+
#. width - Enter BRAM's channel width, default is **16**
74+
#. Write enable - Select based on BRAM type, default is **50% for SDP port A**
75+
#. Read enable - Select based on BRAM type, default is **50% for SDP port B**
76+
#. Toggle Rate - Industry standard default is **12.5%**
5277

5378
DSP - Digital Signal Processor
5479
###############################
@@ -61,7 +86,15 @@ Selecting the DSP section displays an empty table, click the "Add" button above
6186

6287
.. image:: figures/FPGA-figures-DSP-input_DSP_info.JPG
6388

64-
Ener the no. of DSP multipliers used, select the DSP's mode, enter channel width for all inputs, select a clock, then select the pipeline type and enter toggle rate.
89+
1. Provide a name to label the DSP function within the hierarchy (optional)
90+
2. Enter the no. of DSP multipliers
91+
3. Select the DSP's mode from the dropdown menu
92+
4. Enter channel width for DSP inputs, *Note: The DSP Block is 20x18*
93+
#. Input-A width must be between **1 & 20**
94+
#. Input-B width must be between **1 & 18**
95+
5. Select a clock to drive the DSP
96+
6. Select the pipeline type
97+
7. Enter toggle rate - Industry standard default is **12.5%**
6598

6699
IO - Input/Output
67100
##################
@@ -76,5 +109,29 @@ Selecting the IO section displays an empty table, click the "Add" button above t
76109

77110
.. image:: figures/FPGA-figures-IO-input_IO_info2.JPG
78111

79-
Enter I/O port name, bus width, select clock, enter duty cycle, select IO direction & standard, drive strength (current in Amperes), slew rate, differential termination, pullup/pulldown resistors, data type, enter input enable rate, output enable rate, select synchronization & enter toggle rate
112+
1. Provide an IO port name
113+
2. Enter the IO's bus width
114+
3. Select main RTL clock to drive the IO
115+
4. Enter duty cycle - Inudustry standard default is **50.0%**
116+
5. Select IO direction
117+
#. Input
118+
#. Output
119+
#. Open-Drain
120+
#. Bi-Directional
121+
6. Select IO standard - **LVCMOS 1.8v (HR)** as default
122+
7. Select drive strength - current the output buffer can supply to drive a signal through the connected load
123+
8. Select slew rate - how quickly the output signal transitions between logic levels
124+
#. Fast - for high-speed signals
125+
#. Slow - for lower power designs
126+
9. Turn differential termination on/off - **off** as default
127+
10. Select pullup/pulldown resistors - **None** as default
128+
11. Select data type - default is **SDR**
129+
#. SDR (Single Data Rate)
130+
#. DDR (Double Data Rate)
131+
#. Clock
132+
#. Asynchronus
133+
12. Enter input enable rate - default is **50%** for inputs
134+
13. Enter output enable rate - default is **50%** for outputs
135+
14. select synchronization option - default is **none** for signals that are already clocked and don't cross domains
136+
15. Enter toggle rate - Industry standard default is **12.5%**
80137

docs/source/user_guide/SoC_index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,3 @@ Enable/disable each channel using the checkboxes under the Enable column, then c
105105
.. image:: figures/SoC-figures-DMA-put_DMA_info.JPG
106106

107107
For each channel, select a source & destination, typically a peripheral will be connected to a memory or vice-versa. Then select the active state, read/write rate & toggle rate.
108-

src/components/ModalWindows/BramModal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function BramModal({
3434
{
3535
fieldType: FieldType.number,
3636
id: 'bram_used',
37-
text: 'Used',
37+
text: 'BRAMs Used',
3838
value: defaultValue.bram_used,
3939
},
4040
{

src/components/ModalWindows/ClockingModal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function ClockingModal({
3838
{
3939
fieldType: FieldType.number,
4040
id: 'frequency',
41-
text: 'Frequency',
41+
text: 'Frequency (Hz)',
4242
value: defaultValue.frequency,
4343
},
4444
{

src/components/ModalWindows/DspModal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function DspModal({
3030
{
3131
fieldType: FieldType.number,
3232
id: 'number_of_multipliers',
33-
text: 'XX',
33+
text: 'Number of Multipliers',
3434
value: defaultValue.number_of_multipliers,
3535
},
3636
{

src/components/Tables/BramTable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ function BramTable({ device, update, notify }) {
158158
];
159159

160160
const mainTableHeader = [
161-
'', 'Action', 'En', 'Name/Hierarchy', 'BRAM Type', 'Used', 'Port', 'Clock', 'Width', 'Write En', 'Read En',
161+
'', 'Action', 'En', 'Name/Hierarchy', 'BRAM Type', 'BRAMs Used', 'Port', 'Clock', 'Width', 'Write En', 'Read En',
162162
'Toggle Rate', 'Clock Freq', 'RAM Depth', 'O/P Sig Rate', 'Block Power', 'Intc. Power', '%',
163163
];
164164

src/components/Tables/ClockingTable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function ClockingTable({ device, update, notify }) {
2929
const sources = GetOptions('Source');
3030

3131
const mainTableHeader = [
32-
'', 'Action', 'En', 'Description', 'Source', 'Port/Signal name', 'Frequency', 'Clock Control', 'Fanout',
32+
'', 'Action', 'En', 'Description', 'Source', 'Port/Signal name', 'Frequency (Hz)', 'Clock Control', 'Fanout',
3333
'Block Power', 'Intc. Power', '%',
3434
];
3535

src/components/Tables/DspTable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ function DspTable({ device, update, notify }) {
106106
];
107107

108108
const mainTableHeader = [
109-
'', 'Action', 'En', 'Name/Hierarchy', 'XX', 'DSP Mode', { className: 'no-wrap', text: 'A-W' }, { className: 'no-wrap', text: 'B-W' },
109+
'', 'Action', 'En', 'Name/Hierarchy', 'No. of Multipliers', 'DSP Mode', { className: 'no-wrap', text: 'A-W' }, { className: 'no-wrap', text: 'B-W' },
110110
'Clock', 'Pipeline', 'T-Rate',
111111
'Block Used', 'Clock Freq', 'O/P Sig Rate', 'Block Power', 'Intc. Power', '%',
112112
];

0 commit comments

Comments
 (0)