Skip to content

Commit

Permalink
Merge branch 'main' into linty_test
Browse files Browse the repository at this point in the history
  • Loading branch information
stnolting committed Oct 5, 2024
2 parents f578329 + a8c776e commit b0ec0b0
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/Documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ on:
push:
paths:
- 'docs/**'
- '.github/workflows/**'
pull_request:
paths:
- 'docs/**'
- '.github/workflows/**'
workflow_dispatch:

jobs:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/Processor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@ name: Processor

on:
push:
branches:
paths:
- 'rtl/**'
- 'sw/**'
- 'sim/**'
- '.github/workflows/**'
pull_request:
paths:
- 'rtl/**'
- 'sw/**'
- 'sim/**'
- '.github/workflows/**'
workflow_dispatch:

jobs:
Expand Down
14 changes: 10 additions & 4 deletions docs/datasheet/soc.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,13 @@ bits/channels are hardwired to zero.

.Tri-State Interfaces
[NOTE]
Some interfaces (like the TWI and the 1-Wire bus) require tri-state drivers in the designs top module.
Some interfaces (like the TWI and the 1-Wire bus) require explicit tri-state drivers in the final top module.

.Input/Output Registers
[NOTE]
By default all output signals are driven by register and all input signals are synchronized into the processor's
clock domain also using registers. However, for ASIC implementations it is recommended to add another register state
to all inputs and output so the synthesis tool can insert an explicit IO (boundary) scan chain.

.NEORV32 Processor Signal List
[cols="<3,^1,^1,^1,<8"]
Expand Down Expand Up @@ -154,9 +160,9 @@ Some interfaces (like the TWI and the 1-Wire bus) require tri-state drivers in t
5+^| **<<_external_interrupt_controller_xirq>>**
| `xirq_i` | 32 | in | `'L'` | external interrupt requests
5+^| **RISC-V Machine-Mode <<_processor_interrupts>>**
| `mtime_irq_i` | 1 | in | `'L'` | machine timer interrupt (RISC-V), high-level-active
| `msw_irq_i` | 1 | in | `'L'` | machine software interrupt (RISC-V), high-level-active
| `mext_irq_i` | 1 | in | `'L'` | machine external interrupt (RISC-V), high-level-active
| `mtime_irq_i` | 1 | in | `'L'` | machine timer interrupt (RISC-V), high-level-active; for chip-internal usage only
| `msw_irq_i` | 1 | in | `'L'` | machine software interrupt (RISC-V), high-level-active; for chip-internal usage only
| `mext_irq_i` | 1 | in | `'L'` | machine external interrupt (RISC-V), high-level-active; for chip-internal usage only
|=======================


Expand Down
2 changes: 2 additions & 0 deletions docs/datasheet/soc_cfs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ generic (default = 32-bit). The size of the output signal conduit `cfs_out_o` is
`IO_CFS_OUT_SIZE` configuration generic (default = 32-bit). If the custom function subsystem is not implemented
(`IO_CFS_EN` = false) the `cfs_out_o` signal is tied to all-zero.

If the CFU output signals are to be used outside the chip, it is recommended to register these signals.


**Register Map**

Expand Down
Binary file modified docs/figures/neorv32_bus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/figures/neorv32_processor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions rtl/core/neorv32_cfs.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ begin
-- -------------------------------------------------------------------------------------------
-- By default, the CFS provides two IO signals (cfs_in_i and cfs_out_o) that are available at the processor's top entity.
-- These are intended as "conduits" to propagate custom signals from this module and the processor top entity.
--
-- If the CFU output signals are to be used outside the chip, it is recommended to register these signals.

cfs_out_o <= (others => '0'); -- not used for this minimal example

Expand Down
2 changes: 1 addition & 1 deletion rtl/core/neorv32_top.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ entity neorv32_top is
-- External platform interrupts (available if XIRQ_NUM_CH > 0) --
xirq_i : in std_ulogic_vector(31 downto 0) := (others => 'L'); -- IRQ channels

-- CPU interrupts --
-- CPU interrupts (for chip-internal usage only) --
mtime_irq_i : in std_ulogic := 'L'; -- machine timer interrupt, available if IO_MTIME_EN = false
msw_irq_i : in std_ulogic := 'L'; -- machine software interrupt
mext_irq_i : in std_ulogic := 'L' -- machine external interrupt
Expand Down

0 comments on commit b0ec0b0

Please sign in to comment.