URL
https://opencores.org/ocsvn/neorv32/neorv32/trunk
Subversion Repositories neorv32
Compare Revisions
- This comparison shows the changes necessary to convert path
/neorv32/trunk/sim
- from Rev 48 to Rev 49
- ↔ Reverse comparison
Rev 48 → Rev 49
/ghdl/ghdl_sim.sh
55,6 → 55,7
ghdl -a --work=neorv32 $srcdir_core/neorv32_gpio.vhd |
ghdl -a --work=neorv32 $srcdir_core/neorv32_imem.vhd |
ghdl -a --work=neorv32 $srcdir_core/neorv32_mtime.vhd |
ghdl -a --work=neorv32 $srcdir_core/neorv32_nco.vhd |
ghdl -a --work=neorv32 $srcdir_core/neorv32_pwm.vhd |
ghdl -a --work=neorv32 $srcdir_core/neorv32_spi.vhd |
ghdl -a --work=neorv32 $srcdir_core/neorv32_sysinfo.vhd |
/vivado/neorv32_tb_behav.wcfg
12,15 → 12,18
</db_ref> |
</db_ref_list> |
<zoom_setting> |
<ZoomStartTime time="65908200fs"></ZoomStartTime> |
<ZoomEndTime time="65943001fs"></ZoomEndTime> |
<Cursor1Time time="65991400fs"></Cursor1Time> |
<ZoomStartTime time="78970416fs"></ZoomStartTime> |
<ZoomEndTime time="79485917fs"></ZoomEndTime> |
<Cursor1Time time="79325000fs"></Cursor1Time> |
</zoom_setting> |
<column_width_setting> |
<NameColumnWidth column_width="203"></NameColumnWidth> |
<ValueColumnWidth column_width="100"></ValueColumnWidth> |
<ValueColumnWidth column_width="88"></ValueColumnWidth> |
</column_width_setting> |
<WVObjectSize size="132" /> |
<WVObjectSize size="133" /> |
<wave_markers> |
<marker time="123675000" label="" /> |
</wave_markers> |
<wvobject type="divider" fp_name="divider273"> |
<obj_property name="label">CPU: Control.FETCH</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
114,8 → 117,8
<obj_property name="ObjectShortName">be_store_i</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_control_inst/ctrl_o" type="array"> |
<obj_property name="ElementShortName">ctrl_o[61:0]</obj_property> |
<obj_property name="ObjectShortName">ctrl_o[61:0]</obj_property> |
<obj_property name="ElementShortName">ctrl_o[69:0]</obj_property> |
<obj_property name="ObjectShortName">ctrl_o[69:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_control_inst/ci_instr32" type="array"> |
<obj_property name="ElementShortName">ci_instr32[31:0]</obj_property> |
173,18 → 176,13
<obj_property name="isExpanded"></obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_control_inst/cnt_event" type="array"> |
<obj_property name="ElementShortName">cnt_event[12:0]</obj_property> |
<obj_property name="ObjectShortName">cnt_event[12:0]</obj_property> |
<obj_property name="isExpanded"></obj_property> |
<obj_property name="ElementShortName">cnt_event[14:0]</obj_property> |
<obj_property name="ObjectShortName">cnt_event[14:0]</obj_property> |
</wvobject> |
<wvobject type="divider" fp_name="divider139"> |
<obj_property name="label">CPU: RegFile</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_regfile_inst/reg_file" type="array"> |
<obj_property name="ElementShortName">reg_file[31:0][31:0]</obj_property> |
<obj_property name="ObjectShortName">reg_file[31:0][31:0]</obj_property> |
</wvobject> |
<wvobject type="divider" fp_name="divider367"> |
<obj_property name="label">CPU: ALU</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
205,10 → 203,6
<obj_property name="ElementShortName">imm_i[31:0]</obj_property> |
<obj_property name="ObjectShortName">imm_i[31:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_alu_inst/cmp_o" type="array"> |
<obj_property name="ElementShortName">cmp_o[1:0]</obj_property> |
<obj_property name="ObjectShortName">cmp_o[1:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_alu_inst/res_o" type="array"> |
<obj_property name="ElementShortName">res_o[31:0]</obj_property> |
<obj_property name="ObjectShortName">res_o[31:0]</obj_property> |
387,10 → 381,6
<obj_property name="label">CPU: MULDIV CP</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_cp_muldiv_inst_true/neorv32_cpu_cp_muldiv_inst/clk_i" type="logic"> |
<obj_property name="ElementShortName">clk_i</obj_property> |
<obj_property name="ObjectShortName">clk_i</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_cpu_inst/neorv32_cpu_cp_muldiv_inst_true/neorv32_cpu_cp_muldiv_inst/res_o" type="array"> |
<obj_property name="ElementShortName">res_o[31:0]</obj_property> |
<obj_property name="ObjectShortName">res_o[31:0]</obj_property> |
451,14 → 441,6
<obj_property name="label">IO: UART</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_uart_inst_true/neorv32_uart_inst/wr_en" type="logic"> |
<obj_property name="ElementShortName">wr_en</obj_property> |
<obj_property name="ObjectShortName">wr_en</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_uart_inst_true/neorv32_uart_inst/rd_en" type="logic"> |
<obj_property name="ElementShortName">rd_en</obj_property> |
<obj_property name="ObjectShortName">rd_en</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_uart_inst_true/neorv32_uart_inst/uart_txd_o" type="logic"> |
<obj_property name="ElementShortName">uart_txd_o</obj_property> |
<obj_property name="ObjectShortName">uart_txd_o</obj_property> |
467,10 → 449,6
<obj_property name="ElementShortName">uart_rxd_i</obj_property> |
<obj_property name="ObjectShortName">uart_rxd_i</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_uart_inst_true/neorv32_uart_inst/uart_irq_o" type="logic"> |
<obj_property name="ElementShortName">uart_irq_o</obj_property> |
<obj_property name="ObjectShortName">uart_irq_o</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_uart_inst_true/neorv32_uart_inst/ctrl" type="array"> |
<obj_property name="ElementShortName">ctrl[31:0]</obj_property> |
<obj_property name="ObjectShortName">ctrl[31:0]</obj_property> |
484,6 → 462,34
<obj_property name="ObjectShortName">uart_rx</obj_property> |
</wvobject> |
<wvobject type="divider" fp_name="divider238"> |
<obj_property name="label">IO: NCO</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_nco_inst_true/neorv32_nco_inst/clkgen_en_o" type="logic"> |
<obj_property name="ElementShortName">clkgen_en_o</obj_property> |
<obj_property name="ObjectShortName">clkgen_en_o</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_nco_inst_true/neorv32_nco_inst/clkgen_i" type="array"> |
<obj_property name="ElementShortName">clkgen_i[7:0]</obj_property> |
<obj_property name="ObjectShortName">clkgen_i[7:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_nco_inst_true/neorv32_nco_inst/nco_o" type="array"> |
<obj_property name="ElementShortName">nco_o[2:0]</obj_property> |
<obj_property name="ObjectShortName">nco_o[2:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_nco_inst_true/neorv32_nco_inst/tuning_word" type="array"> |
<obj_property name="ElementShortName">tuning_word[0:2][19:0]</obj_property> |
<obj_property name="ObjectShortName">tuning_word[0:2][19:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_nco_inst_true/neorv32_nco_inst/ctrl" type="array"> |
<obj_property name="ElementShortName">ctrl[30:0]</obj_property> |
<obj_property name="ObjectShortName">ctrl[30:0]</obj_property> |
</wvobject> |
<wvobject fp_name="/neorv32_tb/neorv32_top_inst/neorv32_nco_inst_true/neorv32_nco_inst/nco" type="array"> |
<obj_property name="ElementShortName">nco</obj_property> |
<obj_property name="ObjectShortName">nco</obj_property> |
</wvobject> |
<wvobject type="divider" fp_name="divider238"> |
<obj_property name="label">EXT_MEM Interface</obj_property> |
<obj_property name="DisplayName">label</obj_property> |
</wvobject> |
/neorv32_tb.vhd
176,7 → 176,7
CLOCK_FREQUENCY => f_clock_c, -- clock frequency of clk_i in Hz |
BOOTLOADER_EN => false, -- implement processor-internal bootloader? |
USER_CODE => x"12345678", -- custom user code |
HW_THREAD_ID => x"00000000", -- hardware thread id (hartid) |
HW_THREAD_ID => 0, -- hardware thread id (hartid) (32-bit) |
-- RISC-V CPU Extensions -- |
CPU_EXTENSION_RISCV_A => true, -- implement atomic extension? |
CPU_EXTENSION_RISCV_B => true, -- implement bit manipulation extensions? |
218,13 → 218,14
IO_WDT_EN => true, -- implement watch dog timer (WDT)? |
IO_TRNG_EN => false, -- trng cannot be simulated |
IO_CFS_EN => true, -- implement custom functions subsystem (CFS)? |
IO_CFS_CONFIG => (others => '0') -- custom CFS configuration generic |
IO_CFS_CONFIG => (others => '0'), -- custom CFS configuration generic |
IO_NCO_EN => true -- implement numerically-controlled oscillator (NCO)? |
) |
port map ( |
-- Global control -- |
clk_i => clk_gen, -- global clock, rising edge |
rstn_i => rst_gen, -- global reset, low-active, async |
-- Wishbone bus interface -- |
-- Wishbone bus interface (available if MEM_EXT_EN = true) -- |
wb_tag_o => wb_cpu.tag, -- tag |
wb_adr_o => wb_cpu.addr, -- address |
wb_dat_i => wb_cpu.rdata, -- read data |
236,28 → 237,30
wb_lock_o => wb_cpu.lock, -- locked/exclusive bus access |
wb_ack_i => wb_cpu.ack, -- transfer acknowledge |
wb_err_i => wb_cpu.err, -- transfer error |
-- Advanced memory control signals -- |
-- Advanced memory control signals (available if MEM_EXT_EN = true) -- |
fence_o => open, -- indicates an executed FENCE operation |
fencei_o => open, -- indicates an executed FENCEI operation |
-- GPIO -- |
-- GPIO (available if IO_GPIO_EN = true) -- |
gpio_o => gpio, -- parallel output |
gpio_i => gpio, -- parallel input |
-- UART -- |
-- UART (available if IO_UART_EN = true) -- |
uart_txd_o => uart_txd, -- UART send data |
uart_rxd_i => uart_txd, -- UART receive data |
-- SPI -- |
-- SPI (available if IO_SPI_EN = true) -- |
spi_sck_o => open, -- SPI serial clock |
spi_sdo_o => spi_data, -- controller data out, peripheral data in |
spi_sdi_i => spi_data, -- controller data in, peripheral data out |
spi_csn_o => open, -- SPI CS |
-- TWI -- |
-- TWI (available if IO_TWI_EN = true) -- |
twi_sda_io => twi_sda, -- twi serial data line |
twi_scl_io => twi_scl, -- twi serial clock line |
-- PWM -- |
-- PWM (available if IO_PWM_EN = true) -- |
pwm_o => open, -- pwm channels |
-- Custom Functions Subsystem IO -- |
cfs_in_i => (others => '0'), -- custom CFS inputs |
cfs_out_o => open, -- custom CFS outputs |
-- NCO output (available if IO_NCO_EN = true) -- |
nco_o => open, -- numerically-controlled oscillator channels |
-- system time input from external MTIME (available if IO_MTIME_EN = false) -- |
mtime_i => (others => '0'), -- current system time |
-- Interrupts -- |