Altera_Forum
Honored Contributor
11 years agoQsys : using pll locked conduit as a reset
Hi everyone,
I'm facing a little problem but it's very annoying. I have implemented a QSYS system with a PLL and a NIOS2 processor. The processor is run by a clock generated by the pll and I'd like to use the "locked" signal of the pll as a reset. But locked is a "conduit" interface which is not compatible with a "reset" interface. I havn't found any component to change a signal from conduit to reset. So I have made one myself which simply assign an input conduit on an output reset:entity q_conduit_to_reset is
port
(
conduit : in std_logic;
reset : out std_logic
);
end q_conduit_to_reset;
architecture vhdl_rtl of q_conduit_to_reset is
begin
reset <=conduit;
end architecture vhdl_rtl;
# # module conduit_to_reset#
set_module_property DESCRIPTION ""
set_module_property NAME conduit_to_reset
set_module_property VERSION 1.0
set_module_property INTERNAL false
set_module_property OPAQUE_ADDRESS_MAP true
set_module_property GROUP "My IPs"
set_module_property AUTHOR ""
set_module_property DISPLAY_NAME "Conduit To Reset IP"
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
set_module_property EDITABLE true
set_module_property REPORT_TO_TALKBACK false
set_module_property ALLOW_GREYBOX_GENERATION false
set_module_property REPORT_HIERARCHY false
# # file sets#
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
set_fileset_property QUARTUS_SYNTH TOP_LEVEL q_conduit_to_reset
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
set_fileset_property QUARTUS_SYNTH ENABLE_FILE_OVERWRITE_MODE false
add_fileset_file q_conduit_to_reset_ip.vhd VHDL PATH ../hdl/vhdl/q_conduit_to_reset_ip.vhd TOP_LEVEL_FILE
add_fileset SIM_VERILOG SIM_VERILOG "" ""
set_fileset_property SIM_VERILOG TOP_LEVEL q_conduit_to_reset
set_fileset_property SIM_VERILOG ENABLE_RELATIVE_INCLUDE_PATHS false
set_fileset_property SIM_VERILOG ENABLE_FILE_OVERWRITE_MODE false
add_fileset_file q_conduit_to_reset_ip.vhd VHDL PATH ../hdl/vhdl/q_conduit_to_reset_ip.vhd
add_fileset SIM_VHDL SIM_VHDL "" ""
set_fileset_property SIM_VHDL TOP_LEVEL q_conduit_to_reset
set_fileset_property SIM_VHDL ENABLE_RELATIVE_INCLUDE_PATHS false
set_fileset_property SIM_VHDL ENABLE_FILE_OVERWRITE_MODE false
add_fileset_file q_conduit_to_reset_ip.vhd VHDL PATH ../hdl/vhdl/q_conduit_to_reset_ip.vhd
# # display items#
# # connection point conduit#
add_interface conduit conduit end
set_interface_property conduit ENABLED true
set_interface_property conduit EXPORT_OF ""
set_interface_property conduit PORT_NAME_MAP ""
set_interface_property conduit CMSIS_SVD_VARIABLES ""
set_interface_property conduit SVD_ADDRESS_GROUP ""
add_interface_port conduit conduit export Input 1
# # connection point reset#
add_interface reset reset start
set_interface_property reset ENABLED true
set_interface_property reset EXPORT_OF ""
set_interface_property reset PORT_NAME_MAP ""
set_interface_property reset CMSIS_SVD_VARIABLES ""
set_interface_property reset SVD_ADDRESS_GROUP ""
add_interface_port reset reset reset Output 1
To have a good reset behavior, I use the "Reset Bridge" IP with the "deassert" option ON. I connect "locked" and "conduit" together. And I connect both reset together. Now I have the error "Synchronous edges DEASSERT requires associated clock". I understand why I have this error and I can manage to remove it by adding the clock in my custom component. But there is something I cannot understand : It takes A LOT OF ENERGY just to use the locked signal from a pll as a reset in a qsys system. I assume I have missed something and I'd like to know how you people are doing this stuff. Thanks Aurélien