引き続きpicoRV32のパラメータを見ていきます。

 

8)TWO_CYCLE_COMPARE (default = 0)

This relaxes the longest data path a bit by adding an additional FF stage at the cost of adding an additional clock cycle delay to the conditional branch instructions.

Note: Enabling this parameter will be most effective when retiming (aka "register balancing") is enabled in the synthesis flow.

 

動作周波数を上げるために条件分岐のロジックがクリティカルパスになるようケースがあるようで、そこを2サイクルにして動作速度を上げる効果があるようです。

 

9)TWO_CYCLE_ALU (default = 0)

This adds an additional FF stage in the ALU data path, improving timing at the cost of an additional clock cycle for all instructions that use the ALU.

Note: Enabling this parameter will be most effective when retiming (aka "register balancing") is enabled in the synthesis flow.

 

これもALUのロジックのクリティカルパスを緩和するためのパラメータです。

 

10) COMPRESSED_ISA (default = 0)

This enables support for the RISC-V Compressed Instruction Set.

 

圧縮命令(C拡張)を設定します。デフォルトは未対応で、1にすることでC拡張を対応するようです。VerilogのコードでCOMPRESSED_ISAが1だとC拡張の命令の記述が有るのが分かります。

 

11) CATCH_MISALIGN (default = 1)

Set this to 0 to disable the circuitry for catching misaligned memory accesses.

 

ミスアラインで例外を発生させます。0にすることで無効化できます。

 

12)CATCH_ILLINSN (default = 1)

Set this to 0 to disable the circuitry for catching illegal instructions.

The core will still trap on EBREAK instructions with this option set to 0. With IRQs enabled, an EBREAK normally triggers an IRQ 1. With this option set to 0, an EBREAK will trap the processor without triggering an interrupt.

 

デフォルトでEBREAKでTRAPするが、0にすることでTRAPしない

 

13)ENABLE_PCPI (default = 0)

Set this to 1 to enable the Pico Co-Processor Interface (PCPI).

 

コプロセッサの有効・無効の設定。今回、未使用なので記述上も無いので詳細不明。

 

14) ENABLE_MUL (default = 0)

This parameter internally enables PCPI and instantiates the picorv32_pcpi_mul core that implements the MUL[H[SU|U]] instructions. The external PCPI interface only becomes functional when ENABLE_PCPI is set as well.

 

デフォルトでPCPIのMULを無効、有効にすると以下のコードが使われる。

 

15) ENABLE_FAST_MUL (default = 0)

This parameter internally enables PCPI and instantiates the picorv32_pcpi_fast_mul core that implements the MUL[H[SU|U]] instructions. The external PCPI interface only becomes functional when ENABLE_PCPI is set as well.

If both ENABLE_MUL and ENABLE_FAST_MUL are set then the ENABLE_MUL setting will be ignored and the fast multiplier core will be instantiated.

 

より高速な乗算器のオプションとなります。

 

 

16)ENABLE_DIV (default = 0)

This parameter internally enables PCPI and instantiates the picorv32_pcpi_div core that implements the DIV[U]/REM[U] instructions. The external PCPI interface only becomes functional when ENABLE_PCPI is set as well.

 

除算器のオプション設定となります。

 

まだ、続きます。