NEORV32 - Software Framework Documentation
Loading...
Searching...
No Matches
neorv32_cpu_cfu.h File Reference

CPU Core custom functions unit HW driver header file. More...

Go to the source code of this file.

Macros

Low-level CFU custom instructions ("intrinsics")
#define neorv32_cfu_r3_instr(funct7, funct3, rs1, rs2)   CUSTOM_INSTR_R3_TYPE(funct7, rs2, rs1, funct3, RISCV_OPCODE_CUSTOM0)
 
#define neorv32_cfu_r4_instr(funct3, rs1, rs2, rs3)   CUSTOM_INSTR_R4_TYPE(rs3, rs2, rs1, funct3, RISCV_OPCODE_CUSTOM1)
 
#define neorv32_cfu_r5_instr_a(rs1, rs2, rs3, rs4)   CUSTOM_INSTR_R5_TYPE(rs4, rs3, rs2, rs1, RISCV_OPCODE_CUSTOM2)
 
#define neorv32_cfu_r5_instr_b(rs1, rs2, rs3, rs4)   CUSTOM_INSTR_R5_TYPE(rs4, rs3, rs2, rs1, RISCV_OPCODE_CUSTOM3)
 

Functions

int neorv32_cpu_cfu_available (void)
 

Detailed Description

CPU Core custom functions unit HW driver header file.

See also
https://stnolting.github.io/neorv32/sw/files.html

Macro Definition Documentation

◆ neorv32_cfu_r3_instr

#define neorv32_cfu_r3_instr ( funct7,
funct3,
rs1,
rs2 )   CUSTOM_INSTR_R3_TYPE(funct7, rs2, rs1, funct3, RISCV_OPCODE_CUSTOM0)

R3-type CFU custom instruction prototype

◆ neorv32_cfu_r4_instr

#define neorv32_cfu_r4_instr ( funct3,
rs1,
rs2,
rs3 )   CUSTOM_INSTR_R4_TYPE(rs3, rs2, rs1, funct3, RISCV_OPCODE_CUSTOM1)

R4-type CFU custom instruction prototype

◆ neorv32_cfu_r5_instr_a

#define neorv32_cfu_r5_instr_a ( rs1,
rs2,
rs3,
rs4 )   CUSTOM_INSTR_R5_TYPE(rs4, rs3, rs2, rs1, RISCV_OPCODE_CUSTOM2)

R5-type CFU custom instruction A prototype

◆ neorv32_cfu_r5_instr_b

#define neorv32_cfu_r5_instr_b ( rs1,
rs2,
rs3,
rs4 )   CUSTOM_INSTR_R5_TYPE(rs4, rs3, rs2, rs1, RISCV_OPCODE_CUSTOM3)

R5-type CFU custom instruction B prototype

Function Documentation

◆ neorv32_cpu_cfu_available()

int neorv32_cpu_cfu_available ( void )

Check if custom functions unit was synthesized.

Returns
0 if CFU was not synthesized, 1 if CFU is available.