The design is for an Cyclone 1C12.
Besides the NIOS II core three other masters can access the Avalon Bus, which drives two banks of SRAM, a Flash memory and several other peripherals (PIOs, slave interfaces to user logic).
The system divides into a pure NIOS part, which owns one of the SRAM banks and the flash, and a hardware reading data from the other SRAM bank. These data have been written by the NIOS before.
This hardware should be able to run at a faster clock than the NIOS section, therefore using two independent clocks would be nice.
Two different errors occur:
If I change the clock source of only one of the peripherals to the new added clock source, Quartus 4.2 comes up with an error message during synthesis, I guess of the abrbitrator logic of my NIOS system.
Partitioning the whole systems with the different clocks to use causes the SOPC Builder to fail when generating arbitration and system (top) modules.
Here a short copy of the SOPC Builder's output:
Altera SOPC Builder Version 4.20 Build 156
Copyright © 1999-2004 Altera Corporation. All rights reserved.
# 2004.12.12 22:12:35 (*) mk_custom_sdk starting# 2004.12.12 22:12:36 (*) Finding all CPUs# 2004.12.12 22:12:36 (*) Finding all available components# 2004.12.12 22:12:36 (*) Found 46 components
...# 2004.12.12 22:12:39 (*) Starting generation for system: ptu9_nios_release.
..................................................# 2004.12.12 22:12:43 (*) Running Generator Program for ext_flash# 2004.12.12 22:12:45 (*) Running Generator Program for ext_ram# 2004.12.12 22:12:48 (*) Running Generator Program for ext_nios_sram# 2004.12.12 22:12:51 (*) Running Generator Program for onchip_memory_0# 2004.12.12 22:13:38 (*) Running Generator Program for cpu
...
Redirecting generation messages for cpu to file cpu_gen_log_0.txt# 2004.12.12 22:14:31 (*) Running Generator Program for Timer0
...
# 2004.12.12 22:16:16 (*) Making arbitration and system (top) modules.
---wh false:false:boolean
---wh __6__:std_logic'('0'):1
---wh irq_n_from_the_Timer5_from_sa:irq_n_from_the_Timer5_from_sa:1
---wh __8__:std_logic'('0'):1
---wh irq_from_the_pci_user_if_from_sa:irq_from_the_pci_user_if_from_sa:1
---wh irq_n_from_the_Timer6_from_sa:irq_n_from_the_Timer6_from_sa:1
---wh spi_dac_spi_control_port_irq_from_sa:spi_dac_spi_control_port_irq_from_sa:1
---wh irq_n_from_the_ptu_input_pio_from_sa:irq_n_from_the_ptu_input_pio_from_sa:1
---wh __10__:std_logic'('0'):1
---wh __1__:std_logic'('0'):1
---wh low_priority_timer2_s1_irq_from_sa:low_priority_timer2_s1_irq_from_sa:1
---wh jtag_uart_0_avalon_jtag_slave_irq_from_sa:jtag_uart_0_avalon_jtag_slave_irq_from
_sa:1
---wh irq_n_from_the_Timer7_from_sa:irq_n_from_the_Timer7_from_sa:1
---wh irq_n_from_the_Timer0_from_sa:irq_n_from_the_Timer0_from_sa:1
---wh irq_n_from_the_usb_user_if_from_sa:irq_n_from_the_usb_user_if_from_sa:1
---wh __12__:std_logic'('0'):1
---wh __3__:std_logic'('0'):1
---wh __5__:std_logic'('0'):1
---wh irq_n_from_the_Timer8_from_sa:irq_n_from_the_Timer8_from_sa:1
---wh irq_n_from_the_Timer1_from_sa:irq_n_from_the_Timer1_from_sa:1
---wh true:true:boolean
---wh __7__:std_logic'('0'):1
---wh irq_n_from_the_sequencer_if_from_sa:irq_n_from_the_sequencer_if_from_sa:1
---wh irq_n_from_the_Timer2_from_sa:irq_n_from_the_Timer2_from_sa:1
---wh timer1_int_s1_irq_from_sa:timer1_int_s1_irq_from_sa:1
---wh __9__:std_logic'('0'):1
---wh clk_clk_nios_:clk_clk_nios_:1
---wh __0__:std_logic'('0'):1
---wh irq_n_from_the_Timer3_from_sa:irq_n_from_the_Timer3_from_sa:1
---wh __2__:std_logic'('0'):1
---wh __11__:std_logic'('0'):1
---wh irq_n_from_the_Timer4_from_sa:irq_n_from_the_Timer4_from_sa:1
---wh __4__:std_logic'('0'):1
---wh __13__:std_logic'('0'):1
ERROR:
-- ERROR: Order: LEFT VALUE (-1) NOT A NUMBER
-- Expression: {1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
1'b0,
clk_clk_nios_~irq_n_from_the_sequencer_if_from_sa,
clk_clk_nios_~irq_n_from_the_ptu_input_pio_from_sa,
clk_clk_nios_~irq_n_from_the_Timer8_from_sa,
clk_clk_nios_~irq_n_from_the_Timer7_from_sa,
clk_clk_nios_~irq_n_from_the_Timer6_from_sa,
clk_clk_nios_~irq_n_from_the_Timer5_from_sa,
clk_clk_nios_~irq_n_from_the_Timer4_from_sa,
clk_clk_nios_~irq_n_from_the_Timer3_from_sa,
jtag_uart_0_avalon_jtag_slave_irq_from_sa,
~irq_n_from_the_usb_user_if_from_sa,
clk_clk_nios_~irq_n_from_the_Timer2_from_sa,
timer1_int_s1_irq_from_sa,
irq_from_the_pci_user_if_from_sa,
low_priority_timer2_s1_irq_from_sa,
clk_clk_nios_~irq_n_from_the_Timer1_from_sa,
clk_clk_nios_~irq_n_from_the_Timer0_from_sa,
1'b0,
spi_dac_spi_control_port_irq_from_sa}
Error in processing. System NOT successfully generated.